我是新的的WebPack 我在webpack.config.js的WebPack DefinePlugin使用外部config.js
var path = require('path');
var webpack = require('webpack');
var pkg = require('./package.json');
var myconfig = require('./webpack.myconfig.js');
// bundle dependencies in separate vendor bundle
var dependencies = Object.keys(pkg.dependencies).filter(function (el) {
//exclude font packages from vendor bundle & css-toggle-switch
if (el.indexOf('font') !== -1 || el.indexOf('css-toggle-switch') !== -1) {
return false;
}
else return true;
});
module.exports = {
entry: {
libs: dependencies,
main: './src/index'
},
output: {
path: path.join(__dirname, myconfig.buildPath),
publicPath: myconfig.uiURL,
filename: 'dist/js/[name].js',
chunkFilename: '[id].[name].js'
},
plugins: [
new webpack.DefinePlugin({
DEBUG_MODE: JSON.stringify(false),
TIMEOUT: JSON.stringify(30000),
API_URL: JSON.stringify(myconfig.apiUrl),
"process.env": {
NODE_ENV: JSON.stringify("production")
}
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'libs',
filename: 'dist/js/libs.js',
minChunks: Infinity
})
],
};
此代碼,這是myconfig.js
myconfig = {
uiURL: 'http://example.com/',
apiUrl: 'http://api.example.com/api/'
};
module.exports = myconfig;
,如果我跑這句法
webpack -p --config webpack.config.js --progress --colors
我會像
結果/dist/js/libs.js
/dist/js/main.js
,但我想要的結果不是這樣,我希望得到的結果是:
/dist/js/myconfig.js
/dist/js/libs.js
/dist/js/main.js
真正我想要的是, 我想在main.js文件,它將使用myconfig.apiUrl作爲依賴, 所以當我部署到生產或qserver,我只是改變myconfig.js。
謝謝