从Node.js

时间:2016-08-22 19:51:40

标签: javascript node.js webpack

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

webpack
webpack -p

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

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

所以问题是:我可以从Node.js脚本中将上述-p参数传递给Webpack,以构建缩小版本吗?或者也许有一种更简单的方法来解决我的特定问题?

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

2 个答案:

答案 0 :(得分:2)

创建默认配置以将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

答案 1 :(得分:0)

p是设置节点环境变量process.env.NODE_ENV="production"的别名,如here所述