从Node.js传递一个参数给Webpack

Pass an argument to Webpack from Node.js

本文关键字:一个 参数 Webpack js Node      更新时间:2023-09-26

我正在尝试使用Webpack构建我的应用程序的最小化和非最小化版本(jscss)。
这可以通过命令行界面使用-p--optimize-minimize开关轻松完成:

webpack
webpack -p

然而,我想用一个命令来执行这些操作,所以我决定写一个小的Node.js脚本,它将运行这两个Webpack构建:

var webpack = require('webpack');
var config = require('./webpack.config');
webpack(config, callback); // Build unminified version

所以问题是:我可以通过前面提到的-p参数到Webpack从Node.js脚本,以建立缩小的版本?或者也许有一个更简单的方法来解决我的问题?

当然,我可以使用child_process.exec(),但我不认为这是一个真正的Node.js方式

创建默认配置来webpack一个未压缩的版本。用这个配置运行webpack。从代码中更改配置并再次运行webpack。下面是一个代码示例:

var webpack = require('webpack');
//assuming the config looks like this.
var config = {
    entry: "./entry.js",
    output: {
        devtoolLineToLine: true,
        sourceMapFilename: "./bundle.js.map",
        pathinfo: true,
        path: __dirname,
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /'.css$/, loader: "style!css" }
        ]
    },
    plugins: []
};
webpack(config).run(); // Build unminified version
config.output.filename = 'bundle.min.js'
config.plugins = [ 
        new webpack.optimize.UglifyJsPlugin({
            include: /'.min'.js$/,
            minimize: true
        })];

webpack(config).run(); // Build minified version

p是此处描述的设置节点环境变量process.env.NODE_ENV="production"的别名