2016-08-22 83 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