process.env.NODE_ENV可以但是process.env.xxx别的就不行

process.env.NODE_ENV可以但是process.env.xxx别的就不行就会报

Can't resolve 'process/browser'

这个报错信息。看了一下process.env.NODE_ENV这个是webpack编译的时候加入的,而process.env.xxx是用new webpack.DefinePlugin定义的全局变量。

所以就在编译的之后,因为我这个库要在浏览器上执行,所以没有process这个模块。

但是node_modules的方式就可以,所以是先编译,然后不走本地的方式就可以,先编译里面没有这个变量,也能编译成功,然后用的是编译之后的。

那就看编译之后的和直接使用源码有啥区别

解决办法一:

定义的全局变量不要带process,这样就不会误认为是process,而浏览器环境没有这个变量。

解决方案二

在webpack.prod.js中也定义这个变量。

分析问题原因

为什么会用错呢,是因为我在开发过程中,把这个插件作用理解做了,这个插件是编译阶段替换变量的,而不是定义全局变量。

因为尝试window[‘process.env.JSBRIDGE_MOCK_DATA_PATH’]这样是取不到的,所以判断这个插件不是挂载到全局变量上的。
process.env.NODE_ENV可以但是process.env.xxx别的就不行_第1张图片

你可能感兴趣的:(前端)