我想检查代码是否在开发模式下运行,然后例如将redux devtools增强器传递给redux存储。和其他类似情况。我知道我可以使用process.env.NODE_ENV
,但是它太冗长了。我还可以在不同的模块中一次将其写入变量,然后将其导出。但是,对于我来说,仅导入一个变量并使用仅包含一个变量的模块是不合理的。我想要实现的完美解决方案是全局访问该变量,而无需在代码中导入或声明它,并且在编译时将其动态替换为仅字符串,即"development"
而不是process.env.NODE_ENV
。我想要的一个很好的例子是React代码库中的“伪全局” __DEV__
变量。那么我该如何实现呢?预先谢谢你。
我找到了解决方案。我需要Webpack DefinePlugin。
// webpack.confg.js
const webpack = require('webpack');
//...
module.exports = (env, argv) => ({
//...
plugins: [
//...
new webpack.DefinePlugin({
IS_DEV: argv.mode !== 'production'
})
]
})