是否可以在Webpack插件中添加依赖项?我正在生成使用模板的文件,当这些模板更改时,我希望webpack --watch
触发另一个构建。
以下是插件:
function BlahPlugin (options) { this.options = options; }
BlahPlugin.prototype.apply = function (compiler) {
// This is the file that I'd like to "watch"
var template = this.options.template;
compiler.plugin('emit', function (compilation, callback) {
var body = Object.keys(compilation.assets).join("\n");
require("fs").readFile(template, "utf8", function (err, data) {
var content = data.replace("{{body}}", body);
compilation.assets["out.txt"] = {
source: function () { return content; },
size: function () { return content.length; }
};
callback();
});
});
};
module.exports = BlahPlugin;
这是来自一个完整可用项目的内容:https://gist.github.com/thatismatt/519d11b2c902791bb74b。
如果运行
./node_modules/.bin/webpack --watch
并修改 js 文件,则编译会自动触发并生成已编译的 js 文件和 out.txt(如 BlahPlugin 中所指定)。但如果更改 webpack 配置中指定并在 BlahPlugin 中使用的 tmpl.txt 文件,则不会重新触发编译(这是可以预料的)。但这正是我想要发生的,我该如何告诉 Webpack “监听”该文件?