Javascript 在网页包配置中设置条件
我看到的示例显示,在Javascript 在网页包配置中设置条件,javascript,webpack,Javascript,Webpack,我看到的示例显示,在webpack.config.js中,不是将对象分配给module.exports,而是分配一个函数,该函数返回配置对象并为构建模式获取一个参数(从而允许条件构建逻辑) 但是,当我自己尝试这一点时,构建模式参数是未定义的 例如: module.exports=函数(webpackEnv){ console.log(webpackEnv);//未定义 返回{ //…网页包配置 } } 注入构建模式是否需要额外的步骤,或者我是否做错了什么?我使用webpack merge导入远
webpack.config.js
中,不是将对象分配给module.exports
,而是分配一个函数,该函数返回配置对象并为构建模式获取一个参数(从而允许条件构建逻辑)
但是,当我自己尝试这一点时,构建模式参数是未定义的
例如:
module.exports=函数(webpackEnv){
console.log(webpackEnv);//未定义
返回{
//…网页包配置
}
}
注入构建模式是否需要额外的步骤,或者我是否做错了什么?我使用webpack merge导入远程配置 运行webpack cmd时,还包括
--config
在package.json
中:
webpack --watch --config config/webpack/webpack.<name of your file>.js
如果您有一个运行如下内容的脚本:
webpack --env=stage
然后,您可以将“stage”值传递给webpack.config.js,如下所示:
module.exports = (env) => {
const someVariable = env; // 'env' equates to "stage"
return {
your_webpack_config
}
};
如果您希望通过命令行或脚本标记以参数形式传入模式,那么您需要在函数中查找第二个参数,该参数已从脚本执行中传入参数值 假设脚本标记是
webpack--mode=development
您的函数如下所示:
module.exports = function(webpackEnv, argv) {
console.log(webpackEnv); //undefined
console.log('arguments', argv);
return {
mode: argv.mode === 'development' ? 'development' : 'production',
//... webpack config
}
}
参考:您如何通过命令行脚本将
模式
传递到您的网页?如果是这样,那会是什么样子?
module.exports = function(webpackEnv, argv) {
console.log(webpackEnv); //undefined
console.log('arguments', argv);
return {
mode: argv.mode === 'development' ? 'development' : 'production',
//... webpack config
}
}