Webpack v4 —如何访问“模式”选项值

oni*_*mes 2 webpack webpack-4

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

--env.NODE_ENV=development
Run Code Online (Sandbox Code Playgroud)

通过这样做,我想我有两个独立的环境变量,感觉不对。显然,另一个选择是引用不同的配置文件,这似乎也不是简单配置的最佳解决方案。

我在这里想念什么吗?

Sin*_*Sin 6

webpack github问题中找到了更好的方法。从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
Run Code Online (Sandbox Code Playgroud)

原始答案:

您可以使用一些库minimist来解析cli传递的参数:

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

// $webpack-cli --mode development
// development
Run Code Online (Sandbox Code Playgroud)