为了账号安全,请及时绑定邮箱和手机立即绑定

如何将仅编译时的全局变量传递给我的代码?

如何将仅编译时的全局变量传递给我的代码?

qq_花开花谢_0 2022-05-14 14:35:53
我想检查代码是否在开发模式下运行,然后,例如将 redux devtools enchancer 传递给 redux store。和其他类似情况。我知道我可以使用process.env.NODE_ENV,但它太冗长了。我也可以将它写入变量一次,在不同的模块中,然后导出它。但是只导入一个变量并且只有一个变量的模块对我来说似乎是不合理的。我想要实现的完美解决方案是全局访问该变量,而无需在代码中导入或声明它,并在编译时将其动态替换为字符串 ie"development"而不是process.env.NODE_ENV. 我想要的一个很好的例子是 React 代码库中的“伪全局”__DEV__变量。那么我该如何实现呢?先感谢您。
查看完整描述

1 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

我找到了解决方案。Webpack DefinePlugin 是我需要的。


// webpack.confg.js


const webpack = require('webpack');

//...


module.exports = (env, argv) => ({

  //...

  plugins: [

    //...

    new webpack.DefinePlugin({

      IS_DEV: argv.mode !== 'production'

    })

  ]

})


查看完整回答
反对 回复 2022-05-14
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信