在自定义Webpack插件中编辑编译器选项

时间:2018-09-11 13:32:45

标签: javascript webpack webpack-dev-server

我有一个名为“ rest2static”的程序包,用于创建静态页面。这些页面需要一个名为“ assets.json”的文件,该文件将由插件“ AssetsPlugin”创建。

为了在webpackDevServer上进行测试,我创建了一个自定义插件,该插件在编译完成后会创建一个模拟静态页面,以确保“ assets.json”可用并编辑devServer配置。但是,我编辑devServer配置的方式似乎不起作用。 testStaticBiblio()将永远不会被调用,因此我认为我这样做的方式是错误的。如何在自定义插件中编辑编译器选项?

const rest2static = require('rest2static');

class Rest2StaticPlugin {
    constructor(options) {
        this.options = options;
    }

    apply(compiler) {
        compiler.hooks.done.tap('Rest2StaticPlugin', (compilation) => {
            const staticPlan = rest2static.plan();

            function testStaticBiblio(req, res) {
                const content = staticPlan.renderMock('/de/biblio/publication');
                res.end(content);
            }

            compiler.options.devServer.before = (app) => {
                app.use('/de/test-biblio/:type/:id', testStaticBiblio);
                app.use('/fr/test-biblio/:type/:id', testStaticBiblio);
            }
        })
    }
}

module.exports = Rest2StaticPlugin;

0 个答案:

没有答案