Javascript 如何使用节点中的某些选项运行webpack
我目前有一个package.json文件,其中包含以下脚本:Javascript 如何使用节点中的某些选项运行webpack,javascript,node.js,webpack,Javascript,Node.js,Webpack,我目前有一个package.json文件,其中包含以下脚本: "build": "webpack --inline --colors --progress --display-error-details --display-cached", 我的存储库的根目录中还有一个webpack.config.js 我正试图通过将npm脚本移动到单独的.js文件中来减少它们的冗长。我做了一些简单的工作(使用rimraf和一个简单的副本进行清理),但我很难从(节点)javascript文件调用webpack
"build": "webpack --inline --colors --progress --display-error-details --display-cached",
我的存储库的根目录中还有一个webpack.config.js
我正试图通过将npm脚本移动到单独的.js文件中来减少它们的冗长。我做了一些简单的工作(使用rimraf和一个简单的副本进行清理),但我很难从(节点)javascript文件调用webpack。这就是我尝试过的:
// contents of ./build/compile.js
var webpack = require('webpack');
var webpackConfig = require('../webpack.config.js');
webpack(webpackConfig);
这没用。我也试过:
// contents of ./build/compile.js
var webpack = require('webpack');
webpack({
inline: true,
colors: true,
// and so on
});
这也无济于事。只需调用webpack()
也不起任何作用
没有,我的意思是它也不会抛出错误
那么,我如何调用webpack,让它使用我的配置文件,同时传递诸如
--inline--colors--progress…
?关于进度,这个答案对我很有用。。
你看了吗?我相信您必须自己实现CLI的一些功能,因为
webpack(…)
本身不会生成任何输出。或者生成一个子进程。谢谢我查看了节点api,但没有找到我要查找的内容。我想这不是完全可能的,除非像你提到的那样生成一个子进程。如果你把它作为一个答案,我很乐意接受。在你的例子中,你从哪里知道“拒绝”和“解决”?
var ProgressPlugin = require('webpack/lib/ProgressPlugin')
var compiler = webpack(cfg)
compiler.apply(new ProgressPlugin((percentage, msg) => {
console.log((percentage * 100) + '%', msg);
}))
compiler.run((err, stats) => {
if (err) return reject(err);
resolve(stats)
})