gpt4 book ai didi

javascript - 在 Webpack 插件中添加依赖

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:35 25 4
gpt4 key购买 nike

是否可以从 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 “观察”那个文件?

最佳答案

我通过添加以下内容解决了这个问题:

compiler.plugin("emit", function (compilation, callback) {
compilation.fileDependencies.push(path.join(compiler.context, template));
// ...
});

我还更新了要点,所以你可以在那里看到完整的修复:https://gist.github.com/thatismatt/519d11b2c902791bb74b

注意:这是有效的,但有点 hack。

关于javascript - 在 Webpack 插件中添加依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35657098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com