【发布时间】:2020-09-14 11:49:53
【问题描述】:
引用 babel 文档https://babeljs.io/docs/en/babel-standalone#usage:
"如果你想使用浏览器对 ES 模块的原生支持,通常需要在脚本标签上设置 type="module" 属性。使用@babel/standalone,设置 data-type="module "改为属性"
尽管出于某种原因,当包含我的主 index.js 文件(它使用 import 导入其他 js / jsx 文件)时,babel 似乎正在将我的 import 语句转换为 require 语句,因为我得到 ReferenceError: require is not defined .
我发现解决这个问题的唯一方法是使用 transform-modules-umd 插件并将我的所有 js 文件作为脚本包含在内。不确定这是否是 data-type="module" 不起作用的错误,或者我遗漏了什么。
这些是我在 index.html 中的脚本标签
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="index.js" type="text/babel" data-type="module"></script>
感谢您的帮助
【问题讨论】:
标签: javascript reactjs babeljs es6-modules umd