react 在 production.min 报错?

这是个运行时发现的错误,而不是编译时。
当我使用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这个验证码拦住了我,我无法访问。
image
以下与问题无关,只是机翻的上面的描述。
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

阅读 2.6k
1 个回答

main.js 文件你单纯引入 umd/react.production.min.js 然后不写业务代码直接输出 React 看看?
不知道你怎么引入的,可以脱敏一下业务代码然后贴上来的,看起来是没有正确引入的问题。

另外,其实不用单独引入react.production.min.js的因为编译的时候。会自动切换到 production 版本打包的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏