vue ESLint: 'common' is not defined. (no-undef)

博客提到使用Vue时,使用全局变量会使ESLint语法报错,提示变量未定义。解决办法是在.eslintrc.js文件中添加配置,取消该校验,文中以全局变量common为例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用vue的时候,使用一个全局变量,ESLint的语法会出现ESLint: 'common' is not defined. (no-undef),说变量未定义,这时我们可以添加配置,取消这个校验。

1、在.eslintrc.js文件中添加一个配置,位置如下图所示,我的全局变量就是common。

"globals":{
  "common": true
}

c613b0a1e9acb41c2f3bd33a86a31042bad.jpg

转载于:https://my.oschina.net/uwith/blog/3055113

[HMR] Waiting for update signal from WDS... 无法读取 file:///G:/webdemo/teachertest/teacherCode/teacher-web/teacher-web/src/node_modules/sockjs-client/dist/webpack%3A/node_modules/sockjs-client/dist/sockjs.js 的源映射: ENOENT: no such file or directory, open 'g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\sockjs-client\dist\webpack:\node_modules\sockjs-client\dist\sockjs.js.map' 无法读取 file:///G:/webdemo/teachertest/teacherCode/teacher-web/teacher-web/src/node_modules/pdfjs-dist/es5/web/webpack%3A/node_modules/pdfjs-dist/es5/web/pdf_viewer.js 的源映射: ENOENT: no such file or directory, open 'g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\pdfjs-dist\es5\web\webpack:\node_modules\pdfjs-dist\es5\web\pdf_viewer.js.map' 无法读取 file:///G:/webdemo/teachertest/teacherCode/teacher-web/teacher-web/src/node_modules/pdfjs-dist/es5/build/webpack%3A/node_modules/pdfjs-dist/es5/build/pdf.js 的源映射: ENOENT: no such file or directory, open 'g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\pdfjs-dist\es5\build\webpack:\node_modules\pdfjs-dist\es5\build\pdf.js.map' 无法读取 file:///G:/webdemo/teachertest/teacherCode/teacher-web/teacher-web/src/node_modules/pdfjs-dist/es5/build/webpack%3A/node_modules/pdfjs-dist/es5/build/pdf.worker.js 的源映射: ENOENT: no such file or directory, open 'g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\pdfjs-dist\es5\build\webpack:\node_modules\pdfjs-dist\es5\build\pdf.worker.js.map' Could not load source map from FileSaver.min.js.map 无法读取 file:///G:/webdemo/teachertest/teacherCode/teacher-web/teacher-web/src/node_modules/raw-loader/index.js!./node_modules/file-saver/dist/webpack%3A/node_modules/file-saver/dist/FileSaver.min.js 的源映射: ENOENT: no such file or directory, open 'g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\raw-loader\index.js!.\node_modules\file-saver\dist\webpack:\node_modules\file-saver\dist\FileSaver.min.js.map"' Download the Vue Devtools extension for a better development experience: https://github.com/vuejs/vue-devtools 无法读取 file:///G:/webdemo/teachertest/teacherCode/teacher-web/teacher-web/src/node_modules/vue-xlsx-table/dist/webpack%3A/node_modules/vue-xlsx-table/dist/index.js 的源映射: ENOENT: no such file or directory, open 'g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue-xlsx-table\dist\webpack:\node_modules\vue-xlsx-table\dist\index.js.map' seconds 1756459470588 /requirementinfoview (2) ['4', '/requirementinfoview'] API 返回的教师信息: (0) [__ob__: Observer] Uncaught ReferenceError ReferenceError: Message is not defined at eval (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\babel-loader\lib\index.js!.\node_modules\vue-loader\lib\webpack:\requirementinfocomponent.vue?6724:772:1) --- Promise.then --- at handleDelete (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\babel-loader\lib\index.js!.\node_modules\vue-loader\lib\webpack:\requirementinfocomponent.vue?6724:767:1) at click (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue-loader\lib\template-compiler\webpack:\src\components\teacher\teacherpersoncomponent\requirementinfocomponent.vue?04dc:902:1) at invokeWithErrorHandling (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:3753:1) at invoker (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:1563:1) at invokeWithErrorHandling (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:3753:1) at Vue.$emit (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:2831:1) at handleClick (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\element-ui\lib\webpack:\node_modules\element-ui\lib\element-ui.common.js:9465:1) at invokeWithErrorHandling (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:3753:1) at invoker (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:1563:1) at original_1._wrapper (g:\webdemo\teachertest\teacherCode\teacher-web\teacher-web\src\node_modules\vue\dist\webpack:\node_modules\vue\dist\vue.esm.js:8038:1)
最新发布
08-30
Vue3 + Vite + TypeScript 的项目中,当你在`.d.ts` 文件中声明了一个名为 `Menu` 的命名空间(`namespace`),但在其他文件中尝试使用它时遇到 `'Menu' is not defined` 错误,并且受到了 ESLint 的 "no-undef" 规则限制,这通常是由于类型声明未正确导入或模块查找路径有误。 以下是可能出现的原因和解决方案: 1. **缺少导入**:确保在使用 `Menu` 的地方导入了相应的类型声明。例如,如果你在 `menu.ts` 中声明了 `Menu`,那么在需要使用的组件或模块里,添加: ```typescript import { Menu } from './menu'; ``` 或者如果是在全局范围内使用,考虑是否应该放在 `global.d.ts` 中并导出。 2. **模块结构问题**:确认你在 `.d.ts` 文件所在的目录路径是否正确,以及是否被其他文件成功引用。Vite 使用了动态导入,所以确保类型声明文件被正确地包含在构建过程中。 3. **类型别名**:如果你使用了类型别名 (`as`),确保别名也被导入和使用: ```typescript declare namespace Menu { // ...类型定义... } import Menu = require('./menu'); ``` 4. **ESLint 配置**:检查 ESLint 的配置文件 `.eslintrc.js`,确保 "no-undef" 规则仅针对未定义的变量或函数,而不是在整个项目中启用。你可以设置成只对某个特定文件夹或特定文件生效,避免影响全局类型的定义。 5. **编译错误**:确保所有的类型声明都已经正确编译,如果使用的是预构建工具,如 `tsc` 或 Vite 的类型检查插件,可能存在语法错误或未编译的模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值