使用了import() 动态加载 还是报错,“”import必须写在文件头部“”
问题描述
使用了import() 函数动态加载 还是报错:
Module parse failed: 'import' and 'export' may only appear at the top level (21:8)
问题出现的环境背景及自己尝试过哪些方法
相关代码
// 请把代码文本粘贴到下方(请勿用图片代替代码)
export const dynamicLoadModule = () => {
if (window.dynamicload === 0) {
import('./testModule.js')
} else {
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
期待动态加载js不报错
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
可能需要安装
@babel/plugin-syntax-dynamic-import
新建一个 lazyLoading.js 内容如下
在使用的地方
不是要你写在头部,而是要你写在最外层(top level)
你想用的dynamic import是没这种限制的
你现在用不了dynamic import应该是你的打包工具版本不够新
可不可以用这种方式实现
import(window.dynamicload === 0 ? './testModule.js': './testModule2.js')
请问,是否创建
.babelrc
文件,并添加如下代码:如果添加了按照这种写法是没问题的。
在你要调用这个方法的组件中引入: