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

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

在使用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

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、付费专栏及课程。

余额充值