ReferenceError: React没有被Parcel Bundler定义



我按照这篇文章把我的react应用捆绑成一个单独的js文件,可以作为一个小部件嵌入到任何网站

这是我的package.json文件的编辑版本,展示了构建脚本

"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"build:widget": "parcel build src/index.js --no-source-maps -d widget" //This
}

所以,在运行yarn build:widget,我想包裹构建整个应用程序到一个单一的index.js文件,我可以嵌入在一个常规的html文件。

构建工作了,但现在唯一的问题是,在引用index.html文件内的输出index.js文件后,我得到了错误ReferenceError: React is not defined,如下所示

<body>
<p>Hello World</p>
<div id="widget-section"></div>
</body>
<link href="../index.css" rel="stylesheet" />
<script src="../index.js"></script> //ReferenceError: React is not defined gets thrown here

是否有更好的解决方法?

即使你的JavaScript没有显式调用Reactimport React from "react",如果你正在使用JSX,你仍然需要添加这个导入。这是由于您的JSX转译器将JSX内联为React.createElement调用。

最新更新