关于vue的语法规则检测报错问题

本文介绍了解决Vue项目中由于空格与Tab混合使用导致的ESLint缩进报错的方法。通过调整ESLint配置文件,可以选择性地忽略某些规则,提高开发效率的同时保持代码整洁。

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

搭建了一个vue项目,在配置路有的时候,陆续出现了各种报错其中最多的是一些写法,例如空格,缩进,各种括号,结果我一句一句对照,修改相当之费时间,效率低,一上午,一个路由配置都没写好

主要报错如下:

这里写图片描述

截取了一段常见报错,选取其中一个:

Expected indentation of 4 spaces but found 1 tab

翻译一下,意思是:预期缩进4个空格,但找到1个选项卡。意思是vue在检测写法规则的时候,只认空格,不认tab的缩进,这时你就要修改的页面内容,把tab换成空格,这样就比较麻烦,然鹅各种查找原因,找到了解决方案,如下:

一,找到目录build下的webpack.base.conf.js文件,把其中的rules里的这一段注销掉:

这里写图片描述

这里写图片描述

保存,然后重新npm run dev 一下:
这里写图片描述

报错虽然不见了,但是这样做的弊端是,强行停止一切检错功能,很多语法错误检测不出,在初期,是不建议这么做的,更加不利于代码的可读行以及规范性。那么就要寻找另一个办法,只是更改一下规则里的配置。

二,这就用到了另一个配置文件:test目录下的.eslintrc.js文件(推荐)

这里写图片描述

这里写图片描述

添加你的自定义规则,然后推荐大家熟悉一下ESLint 规则

规则

在配置文件中可以设置一些规则。

规则的错误等级有三种:

  • “off” 或者 0:关闭规则。
  • “warn” 或者 1:打开规则,并且作为一个警告(不影响exit code)。
  • “error” 或者 2:打开规则,并且作为一个错误(exit code将会是1)。

为了让你对规则有个更好的理解,ESLint 对其进行了分门别类。
所有的规则默认都是禁用的。在配置文件中,使用 “extends”: “eslint:recommended” 来启用推荐的规则,报告一些常见的问题,在下文中这些推荐的规则都带有一个标记。

Possible Errors对照着来自定义规则配置
以上面提到的报错为例,是跟空格缩进有关,找到相关规则提示:
这里写图片描述
然后到rules里,手动添加’no-mixed-spaces-and-tabs’,然后定义为0,关闭规则

 // 在这里添加自定义规则
  'rules': {
    // allow paren-less arrow functions
    'arrow-parens': 0,
    // allow async-await
    'generator-star-spacing': 0,
    // 禁止空格和 tab 的混合缩进
    'no-mixed-spaces-and-tabs'0 // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
  }

好了,保存刷新,你会发现报错不再提示,这样做的好处是,挑选需要忽略的规则

### 解决方案概述 在 Vue 项目开发过程中,ESLint 是一种常用的静态代码分析工具,用于检测 JavaScript 和 Vue 文件中的潜在错误并强制执行一致的编码风格。然而,在实际操作中可能会遇到一些常见的 ESLint 报错问题。以下是针对这些报错的具体解决方案。 --- #### 方法一:查阅官方文档调整规则配置 通过访问 ESLint 官方文档获取可用规则列表[^1],可以根据项目的具体需求自定义 ESLint 配置文件 `.eslintrc.js` 或者 `.eslintrc.json` 的内容。例如: ```javascript module.exports = { env: { browser: true, es2021: true, }, extends: [ 'plugin:vue/essential', 'standard' ], parserOptions: { ecmaVersion: 12, sourceType: 'module' }, rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', // 调整 console 使用规则 'semi': ['error', 'always'] // 强制使用分号结束语句 } }; ``` 上述代码片段展示了如何修改 `rules` 属性来适应团队或者个人的需求。 --- #### 方法二:禁用 VSCode 格式化工具冲突 如果发现 ESLint 和 VSCode 自带格式化工具有冲突,则可以通过设置关闭自动格式化的功能[^2]。打开 VSCode 设置 (`settings.json`) 并添加如下内容: ```json { "editor.formatOnSave": false, // 关闭保存时自动格式化 "[javascript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" // 指定 eslint 插件作为默认格式化工具 }, "[vue]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" } } ``` 这样可以有效减少因不同工具之间的行为差异而导致的报错情况。 --- #### 方法三:全局关闭 Lint-on-Save 功能 对于某些不需要实时校验的情况,可以直接在 `vue.config.js` 中设置 `lintOnSave` 参数为 `false` 来完全忽略 ESLint 的运行时检查[^3]: ```javascript module.exports = { lintOnSave: false // 禁止保存时触发 ESLint 检查 }; ``` 此方法适合快速调试阶段或对语法一致性要求不高的场景下使用。 --- ### 总结 以上三种方式分别适用于不同的应用场景——从精细化调整到全面屏蔽均可满足开发者需求。建议先尝试优化现有规则集以保持良好的代码质量;当确实存在不可调和矛盾时再考虑降低严格度甚至暂时停用该插件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值