VSCode中JSHint报W024警告:应为标识符却遇到保留字'import'的问题咨询
解决JSHint的"Expected an identifier and instead saw 'import' (a reserved word). (W024)"警告
这个问题我之前踩过坑,本质就是JSHint默认没开启ES6模块语法的支持,把import当成了非法的保留字处理。给你几个简单有效的解决办法:
方法1:给单个文件添加JSHint配置注释
直接在你的路由文件最顶部加一行配置注释,明确告诉JSHint你在使用ES6和ES模块语法:
/* jshint esversion: 6, esmodules: true */ import { createRouter, createWebHistory } from "@ionic/vue-router"; const routes = [ { path: "/", component: () => import("../views/Home.vue") }, { path: "/manufacturers", name: "Manufacturers", component: () => import("../views/Manufacturers.vue") }, ]; const router = createRouter({ history: createWebHistory(process.env.BASE_URL), routes }); export default router;
这样JSHint就能正确识别import、export以及动态import()这些语法,不会再报保留字错误。
方法2:配置项目级JSHint规则(更推荐)
如果不想每个文件都加注释,可以在项目根目录创建一个.jshintrc文件,写入以下全局配置:
{ "esversion": 6, "esmodules": true }
这个配置会作用于整个项目的所有文件。要是用VSCode开发,也可以直接在VSCode的settings.json里添加全局JSHint配置:
"jshint.options": { "esversion": 6, "esmodules": true }
补充说明
JSHint默认是针对ES5及以下版本的JavaScript设计的,而import是ES6才引入的模块关键字,在ES5规范里它属于保留字但不允许被合法使用,所以会触发这个警告。只要开启对应的ES版本和模块支持,JSHint就能正确解析这些现代语法了。
内容的提问来源于stack exchange,提问作者Sariful
相关产品推荐
相关产品推荐

