我按照这篇文章把我的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没有显式调用React
即import React from "react"
,如果你正在使用JSX,你仍然需要添加这个导入。这是由于您的JSX转译器将JSX内联为React.createElement
调用。