在react项目中引入一个webpack打包后的js文件出错
问题描述
通过webpack打包一个react项目成一个js文件,然后在另一个项目中通过react-load-script的形式引入
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
webpack打包部分:
entry: {
app: './src/index.tsx',
vendor: ['axios', 'react', 'react-dom', 'mobx-react']
},
output: {
filename: 'js/[name].[chunkhash:8].js',
path: __dirname + "/dist"
},
引入部分:
const Script = require('react-load-script');
<Script
url="https://cassnotify.oss-cn-shenzhen.aliyuncs.com/xm/clue-plugin/test/js/app.66ba3c0f.js"
onCreate={this.handleScriptCreate.bind(this)}
onError={this.handleScriptError.bind(this)}
onLoad={this.handleScriptLoad.bind(this)}
/>
你期待的结果是什么?实际看到的错误信息又是什么?
原本想要正常的引入这个js文件,结果出现
“Uncaught ReferenceError: React is not defined”、
“Uncaught ReferenceError: require is not defined”
错误
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
题目给的信息有限,没法断定问题所在,但是 很可能不是引入这个脚本导致的问题。
require 是 commonJS 等模块化方案以及 nodeJS 的依赖引入方式,require 本身是一个函数,既然
require is not defined
,那就说明相关的模块化环境并没有引入,所以到 require 这里就报错了,那个脚本根本不可能被引进来。既然脚本没引进来,那么
React is not defined
也和那个脚本没有关系,而是试图打包或者执行代码的时候遇到没有引入的 React。一点可能解决问题的建议:
import React from 'react'
,我想 tsx 文件可能也是;import 'moidule_name'
,而不是 require 函数,并且只有非 JS 的文件作为静态文件,JS 理应按照建议 1 的方式模块化引入。