Webpack v4 - 如何访问'模式'期权价值

时间:2018-03-18 14:13:17

标签: webpack webpack-4

Webpack v4引入了两组默认设置:productiondevelopment。我的问题是:有没有办法引用配置文件中的那些?我知道我仍然可以将环境变量传递为:

--env.NODE_ENV=development

想到这一点,我有两个独立的环境变量,这感觉不对。另一种选择显然是引用不同的配置文件,这对于简单配置来说也不是最佳解决方案。

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:6)

a webpack github issue中找到了更好的方法。 从webpack 2开始,您可以在webpack.config.js中导出函数,解析后的argv将传递给该函数。

对于webpack 4,您可以编写如下配置:

// webpack.config.js
module.exports = (env, argv) => {
    console.log(argv.mode);
    return { /* your config object */ };
};

// $webpack-cli --mode development
// development

原始答案:

你可以使用像minimist这样的lib来解析cli传递的参数:

// webpack.config.js
const args = require('minimist')(process.argv.slice(2));
console.log(args.mode);

// $webpack-cli --mode development
// development

答案 1 :(得分:0)

我刚刚构建了这个简单的NPM包,用于导入当前的Webpack 4模式:https://github.com/mckomo/webpack-mode。以下是如何使用它:

// webpack.config.js
const { isProduction } = require('webpack-mode');

console.log(isProduction); // => true

// ... rest of the config

它非常简单,只需读取进程参数即可确定mode参数的值。默认情况下,webpack-mode.isProduction将返回true(Webpack 4的原始行为)。