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/。
import('@/vendor/Export2Excel').then(excel => {
const tHeader = ['雇员编号', '姓名', '年龄', '性别', '生日', '身份证', '电话', 'QQ', '地址', '入职时间', '状态']
const filterVal = ['empNo', 'empName', 'empAge', 'empSex', 'empBirthday', 'empIdCard', 'empTel',
今天new了一个项目,在搭建新的vue项目,其中引入了部分依赖,在run的过程中出现了以下报错信息:
Parsing error: 'import' and 'export' may appear only with 'sourceType: module'
解决方法如下:
找到项目的.eslintrc.js文件,在parserOptions增加以下代码,重新编译即可。
parserOptions: {
sourceType: 'module'
报错代码
document.querySelector('#btn').onclick = function () {
import(/* webpackChunkName: 'test' */'./print')
.then(({ print }) => {
console.log(print(2, 3));
地址见:https://github.com/webpack/webpack/issues/8656
Module parse failed: 'import' and 'export' may only appear at the top level (85:8)
You may need an appropriate loade...
在搭建React开发环境是使用react-hot-loader时出现了import' and 'export' may only appear at the top level错误,当时考虑到使用的版本存在问题,通过官方git发现如下办法解决;
解决办法:
If you're using React Hot Loader together with Babel (ex
6to5), mak
//通常情况下只有一个,所有路由配置的页面会在这里展示,通常放在App.vue中
1.2路由链接
<router-link to="路由路径" >名称A</router-link>
//通过router-link点击"名称A"可以进入路由界面
1.3子组件
这个方式么,是属于你的一部分,不用点击都能看到.不过在用之前得声明下.
(1)局部的话就
<SingleUpload v-model="dataForm.
react 中使用import()实现按需加载报错 解决方法 --‘import’ and ‘export’ may only appear at the top level