我见过这个问题:在 webpack 构建之后运行命令,我修改了那里提供的示例代码。
为了描述我的场景,我试图通过 webpack 获取资产输出并将它们部署到已安装的网络驱动器。我正在使用ncp复制目录并且实际复制工作正常,似乎当 webpack 调用after-emit事件或done事件时,实际上并没有完成将文件发送或写入文件系统。我的副本最终复制了空文件或部分写入的文件。
这是整个插件:
'use strict';
var ncp = require('ncp').ncp;
function WebPackDeployAfterBuild(options) {
var defaultOptions = {
};
this.options = Object.assign(defaultOptions, options);
}
WebPackDeployAfterBuild.prototype.apply = function(compiler) {
const options = this.options;
compiler.plugin("done", (stats) => {
console.log(Object.keys(stats.compilation.assets));
console.log("\nExecuting Deploy on done...");
ncp(options.from, options.to, function(err) {
if (err) {
console.error("Err in ncp");
}
console.log(`Finished deploying ${options.from} to ${options.to}`);
});
});
compiler.plugin("after-emit", (compilation, callback) => {
console.log(Object.keys(compilation.assets));
console.log("\nExecuting Deploy on …Run Code Online (Sandbox Code Playgroud)