gpt4 book ai didi

javascript - 在 webpack 构建之后运行命令

转载 作者:IT王子 更新时间:2023-10-29 03:05:39 25 4
gpt4 key购买 nike

我想在 --watch 模式下运行 webpack,并在每次构建后运行一个 shell 命令,将一个文件夹同步到另一个文件夹。

我找到了 this plugin在每次构建后触发一个事件。这行得通,但最后一个难题是从 Javascript 触发 shell 命令(用于同步)。非常感谢有关如何实现这一目标的任何指示。

最佳答案

网页包 4

截至今天(2018 年 4 月 11 日),我尝试过的大多数插件都使用已弃用的 API,导致此警告:

DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead

我很高兴发现您可以轻松编写一个临时的 webpack 插件(docs)。

在你的 webpack.config.js 文件中:

const exec = require('child_process').exec;

module.exports = {

// ... other config here ...

plugins: [

// ... other plugins here ...

{
apply: (compiler) => {
compiler.hooks.afterEmit.tap('AfterEmitPlugin', (compilation) => {
exec('<path to your post-build script here>', (err, stdout, stderr) => {
if (stdout) process.stdout.write(stdout);
if (stderr) process.stderr.write(stderr);
});
});
}
}
]
};

如果您更愿意使用 spawn从脚本中获取实时或“实时”数据,这说明了基本用法:

const spawn = require('child_process').spawn;

const child = spawn('<your script here>');
child.stdout.on('data', function (data) {
process.stdout.write(data);
});
child.stderr.on('data', function (data) {
process.stderr.write(data);
});

关于javascript - 在 webpack 构建之后运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30312715/

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