我正在使用env
变量运行webpack服务器,测试环境指向我的构建环境:
var environment = process.env.environment == null ? "development" : process.env.environment
如何根据此environment
值在构建中添加一些j?我不想用DefinePlugin
编写丑陋的内容,然后再写下这些内容:
if (NODE_ENV="test") {
import { "my_polyfill" }
}
答案 0 :(得分:0)
default.js
,其中包含您的dev webpack配置。production.js
default.js
醇>
默认情况下,node-config
会选择default.js
并将其提供给网络包。
如果您设置NODE_ENV=production
,则会选择production.js
并执行Object.assign({}, default, production)
并将其提供给网络包。
通过这种方式,您将能够为webpack管理n个env
配置。
跳起来有帮助!
<强> [UPDATE] 强>
添加一个示例来演示您的案例......
在项目的根目录中创建config/default.js
export default {
entry: ['./foo/bar', './foo1/bar1'],
output: {
path: path.resolve('./build/js'),
filename: '[name].js',
publicPath: '/js/'
},
}
在项目的根目录中创建config/production.js
export default {
entry: ['./foo/bar', './foo1/bar1', './new/entry'], //adding the new entry
plugins: [
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
},
}),
],
}
在项目的根目录中创建webpack.config.babel.js
import config from 'config' //I'm using ES6 style. You can use require also
export default config.default //export the config based on the NODE_ENV
显示时间
webpack --progress --colors
default.js as the config
在这种情况下,node-config将返回
NODE_ENV=production
webpack --progress --colors
在这种情况下,node-config将同时使用default.js
和production.js
并覆盖default.js
(这里的条目和来自production.js的插件将在默认情况下被覆盖.js)它将返回一个带有{entries(来自production.js
),输出(来自default.js
),插件(来自production.js
)}的对象,这是一个Object.assign()操作
要恢复为default.js
。您需要重置NODE_ENV
NODE_ENV=
根据您的操作系统执行export
时,Yov可能需要使用exports
或NODE_ENV
希望它有所帮助