Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在网页包配置中设置条件_Javascript_Webpack - Fatal编程技术网

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 
  }
}