2016-08-22 82 views
0

我正在尝试使用Webpack构建我的应用程序的缩减和非缩小版本(jscss)。
这可以通过命令行界面使用很容易做到-p--optimize-minimize开关:从Node.js将参数传递给Webpack

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以建设小型fied版本?或者,也许有更简单的方法来解决我的特定问题?

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

回答

2

创建默认配置给的WebPack的unminified版本。用该配置运行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 
+0

谢谢你的回答!我结束了使用你的方法和分离'config'对象,以避免竞争条件。 – kefir500

0

主要p是一个别名设置节点环境变量process.env.NODE_ENV="production"描述here

+0

谢谢你的回答!然而,这是'NODE_ENV' **和**'--optimize-minim'的快捷方式,并且由于第二个完成了所需的缩小。 – kefir500