目录

  • 简介
  • 解决方案

简介

Vue的官网中提到了有关异步组件的语法,链接如下:
https://cn.vuejs.org/v2/guide/components-dynamic-async.html 
可以使用require,也可以使用import,如果使用import,那么语法是这样的。

new Vue({// ...components: {'my-component': () => import('./my-async-component')}
})

这里的关键就是()=>import(’./my-async-component’)这一句,import函数会返回一个Promise,从而达到异步加载的效果。然后如果你和我一样是启用了ESLint的vue CLI项目的话,那么这样写就会得到一个报错,即:
import’ and ‘export’ may only appear at the top level。
意思是import和export没有放到全局(顶层块作用域),如果你使用的是require,那么应该也会报类似的错误,这里就不在探究,因为import和require在vue CLI项目中的作用是类似的。接下来我说说怎么解决,还有解决的思路。

解决方案

通过报错信息我们不难看出,这一句报错实际上是ESLint的报错,我们写的代码从语法上根本没有任何问题,因此我们只需要在EsLint的配置文件中将响应的验证规则禁用即可,最终我在ESLint官网的文档中找到了这个。
https://eslint.bootcss.com/docs/rules/global-require
解决步骤是在Vue项目根目录中打开.eslintrc.js,在导出的设置的rules中,加上~~“global-require”: false"~~ global-require": 0 。之后关闭并重新编译或热部署vue应用就可以了。
.eslintrc.js的内容如下:

//这是.eslintrc.js里面的内容,如果项目中不包含这个文件可以新建一个
module.exports = {"env": {"browser": true,"es6": true,"node": true,"browser": true},"extends": ["eslint:recommended","plugin:vue/essential"],"globals": {"Atomics": "readonly","SharedArrayBuffer": "readonly"},"parserOptions": {"ecmaVersion": 2018,"sourceType": "module"},"plugins": ["vue"],//其他的设置都是自动的"rules": {//就是这一句,禁用import和require必须出现在顶层作用域的验证规则"global-require": 0//这里应该0代表off之前写错了写成了false}
};

在ESLint的配置文件中,我们在rules字段配置需要开启或者关闭的验证规则,ESlint所有可配置的规则在官网文档中列举如下:https://eslint.bootcss.com/docs/rules/。
如果你还希望禁用一些与vue文件相关的配置(例如去掉v-for的key验证),可以参考这个官网文档,https://eslint.vuejs.org/rules/。

vue CLI异步组件报错import' and 'export' may only appear at the top level相关推荐

  1. react 中使用import()实现按需加载报错 解决方法 --‘import’ and ‘export’ may only appear at the top level

    react 中使用import()实现按需加载报错 解决方法 --'import' and 'export' may only appear at the top level 参考文章: (1)rea ...

  2. vue/cli的安装报错以及解决问题的方法

    一.在安装vue/cli的过程中,一直报错,通过翻译了解到是权限出现了问题? 解决方法:打开cmd管理员权限(华为快捷键ctrl+x),再次运行vue/cli安装代码(npm install -g @ ...

  3. 【解决】Parsing error: ‘import‘ and ‘export‘ may only appear at the top level报错

    问题描述:在用webpack做代码分割,按需加载,动态导入时,eslint检查import报错,因为eslint不支持动态导入. 报错如下图: 解决方法: 1.下载包:npm i eslint-plu ...

  4. vue3使用箭头函数导入异步组件报错Invalid VNode type: undefined的解决方案

    import { defineAsyncComponent } from 'vue'export default {components: {Header: defineAsyncComponent( ...

  5. vue导入xlsx-style组件报错Can‘t resolve ‘./cptable‘ in ‘xxx\node_modules_xlsx

    官方给出了解决方案,我们只需要修改一下配置 vue2x版本 就是有webpack配置 就是在webpack.base.conf.js中加入下面这段 module.exports = {external ...

  6. vue 引用组件报错——找不到组件的解决方案

    vue在开发页面时引用组件报错 在使用vue开发页面时报如下错,到处找问题,components的注入也是写正确的 后来才发现是这里引入写错了,引入组件不能写{} 改成下面这种就可以了 记录下工作中的 ...

  7. Vue scss 引入变量报错

    官网css引入配置 参考文章 我在项目里自定义了vue.config.js的rules关于scss的loader所以我是直接子啊loader配置options就可以 { test: /\.scss$/ ...

  8. antd Datepicker组件报错 ——date.clone is not a function或者date1.isAfter is not a function

    问题描述: antd Datepicker组件报错 --date.clone is not a function或者date1.isAfter is not a function 原因分析: 在Fro ...

  9. 【Vue】—异步组件

    [Vue]-异步组件 一. 组件引入方式:提前引入 import CompA from './components/CompA.vue'components:{CompA} 二. 异步引入 compo ...

最新文章

  1. LaxTex---问题1: ! I can't write on file `***.pdf'.(Press Enter to retry, or Control-Z to exit; \ldots
  2. Go的sync(一)
  3. Struts2 返回 json 格式数据
  4. 中心点 unity_32-Unity入门学习11「UI锚点与自适应」
  5. Hbase-1.1.1-java API
  6. Word 2010基本操作——新建文档、保存文档
  7. flac文件转换成mp3格式
  8. 电脑桌面透明云便签怎么设置便签皮肤透明度?
  9. 2021年数学建模B组代码
  10. 德勤 oracle par面,德勤霸王PAR面两次,谈感受,发面经
  11. 用VS新建多层架构时引用第三方dll 时清理解决方案时,放bin文件夹下的bll被清空问题
  12. 0ctf writeup
  13. java8方法引用-调用特定方法的Lambda的一种快捷写法
  14. php虚线_实现css虚线样式的两种方式:dotted和dashed(实例)
  15. Linux系统的注销与关闭
  16. 数据结构1 - 向量
  17. 哪些赛道适合程序员创业?
  18. Android 自带的返回键功能
  19. 二进制老鼠毒药c语言,老鼠试药  二进制问题
  20. 【iOS】动态更换图标

热门文章

  1. 如何快速学习并掌握一门编程语言
  2. 无线的安全威胁与认证加密技术
  3. 央行简历计算机水平怎么写,2020人民银行招聘简历模板及网申指导
  4. 2023-5-7 什么是公网、内网、局域网、广域网、互联网?已经有了mac地址为什么还需要ip地址?使用ip地址是如何进行构建互联网的?
  5. 苹果手机像素只有1200万,为何拍照比安卓4800万舒服?
  6. Jpg文件格式[参考]
  7. Lightdb Pgpool-II 读写分离使用
  8. expect实现oscp openvpn账号密码自动连接
  9. 分页切换当前页仅有一个数据被删除后不向前一页跳转解决
  10. Excel此工作簿包含一个或多个可能不安全的外部源的链接,但无法断开链接的解决办法