这是个运行时发现的错误,而不是编译时。
当我使用umd/react.development.js
的时候,页面是正常显示的,但替换为umd/react.production.min.js
后,报错了。
!! (dist\react.production.min.js, line:9, col:173) - ReferenceError: self is not defined
!! (dist\main.js, line:26, col:21) - ReferenceError: React is not defined
我确定xml里面是先引用的react.*.js
然后才是main.js
,我通过console.log确认过顺序。
我也尝试了将9行173列的self出现的语句,换为development
文件中的部分,但是那不起作用,项目依旧不能正常跑起来。
我以为 UMD的react就是在 将命名空间React注册到global上,使得我可以global.React运行起来。但是只有umd/react.development.js
是可以的,umd/react.production.min.js
却不行。
有人知道为什么吗?我需要怎么做才能使用production.min的文件。
我试过去github问开发人员,但他们更倾向于我去stackoverflow提问。
我也试着去stackoverflow提问,但是CAPTCHA这个验证码拦住了我,我无法访问。
以下与问题无关,只是机翻的上面的描述。
This is a runtime error, not a compile time error。
When I reference umd/react.development.js
, the page is normal. However, when i change it to umd/react.production.min.js
, I got error message
!! (dist\react.production.min.js, line:9, col:173) - ReferenceError: self is not defined
!! (dist\main.js, line:26, col:21) - ReferenceError: React is not defined
Because it is a UMD, the registration of react to global variables is done through self executing anonymous functions. I tried to change the statement of self to that in 'development. js', but it didn't work. The web still couldn't find the React
I tried react@16.1 @17 @18,
im sure react.*.js
is inculded befor main.js
,by console.log
main.js
文件你单纯引入umd/react.production.min.js
然后不写业务代码直接输出React
看看?不知道你怎么引入的,可以脱敏一下业务代码然后贴上来的,看起来是没有正确引入的问题。
另外,其实不用单独引入
react.production.min.js
的因为编译的时候。会自动切换到production
版本打包的。