马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1、弁言
eslint 和 prettier 这俩都是在前端工程化中不可缺少的东西,但这俩,在一块运行的时间,总会有点题目
Eslint功能
- 对js语法检测、限定和修复
- 对代码风格举行格式化,不能对css、less等格式化
Prettier
- Prettier不可以对任何语法检测、限定和修复
- 但是可以 美化许多格式的代码,包罗js、jsx、ts、json、css、less、scss、html、vue等
这俩就会重叠的地方, 语法检测、限定、修复
2、题目复现
eslint 的版本如下
在工程化项目中,安装了 eslint 和 prettier , 在 prettier 中开启,字符串用单引号的规则;在 eslint 中 开启,字符串用 双引号的规则
…prettierrc 文件内容
"singleQuote": true, 焦点是这个,字符串开启单引号
- {
- "useTabs": false,
- "tabWidth": 2,
- "printWidth": 80,
- "singleQuote": true,
- "trailingComma": "none",
- "bracketSpacing": true,
- "semi": false
- }
复制代码 eslint.config.js 文件内容
- import globals from 'globals'
- import pluginJs from '@eslint/js'
- import tseslint from 'typescript-eslint'
- import pluginVue from 'eslint-plugin-vue'
- /** @type {import('eslint').Linter.Config[]} */
- export default [
- { files: ['**/*.{js,mjs,cjs,ts,vue}'] },
- { languageOptions: { globals: { ...globals.browser, ...globals.node } } },
- // js 推荐的配置
- pluginJs.configs.recommended,
- // ts 推荐的配置
- ...tseslint.configs.recommended,
- ...pluginVue.configs['flat/essential'],
- {
- files: ['**/*.vue'],
- languageOptions: { parserOptions: { parser: tseslint.parser } }
- },
- {
- rules: {
- 'no-console': 'error',
- '@typescript-eslint/no-unused-vars': 'error',
- 'vue/multi-word-component-names': 'off', // 关闭 vue组件名称必须是多词的校验
- '@typescript-eslint/no-explicit-any': 'off', // 关闭 不能出现 any 校验
- quotes: ['error', 'double']
- }
- }
- ]
复制代码 这个时间就会出现题目,到底是以 eslint 为准 还是以 prettier 为准呢
3、题目修复
- eslint-config-prettier :这是一个 ESLint 设置规则的包,它将关闭与 Prettier 辩说的 ESLint 规则。
- eslint-plugin-prettier :这是一个 ESLint 插件,它将 Prettier 应用到 ESLint 中。它会使用 Prettier 来格式化代码,并将格式化效果作为 ESLint 的一项规则来查抄代码。使用 eslint-plugin-prettier 可以在代码查抄的同时,自动格式化代码,使其符合 Prettier 的规则。
生存的时间,实在会用 prettier 美化代码,然后就导致,eslint 的 双引号报错
1、安装 eslint-plugin-prettier
- pnpm add eslint-plugin-prettier -D
复制代码 2、修改 eslint.config.js 设置文件
- import eslintPluginPrettier from 'eslint-plugin-prettier/recommended'
-
- eslintPluginPrettier, // 解决 prettier 和 eslint 的冲突,比如 eslint 里面是 开启 双引号,prettier 里面开启单引号
复制代码 重要是增长这两行
3、在根目次新增 prettier.config.js 文件,把 prettier 的设置信息放到内里去
- export default {
- useTabs: false,
- tabWidth: 2,
- printWidth: 80,
- singleQuote: true,
- trailingComma: 'none',
- bracketSpacing: true,
- semi: false
- }
复制代码 然后重启 vscode 这个时间没报错了
4、注意
如若 想要实验 pnpm exec eslint --fix 大概会有一个报错 eslint-config-prettier 找不到,还必要安装一下这个,由于在 eslint-plugin-prettier 包内里用到了
- pnpm add eslint-config-prettier -D
复制代码
5、eslint-plugin-prettier/recommended 与本身的默认规则,辩说办理
这个似乎而且不是这个题目,重启一下vscode 就好了,不消再添加 rules 了
比如我设置了,'no-console': 'error', , 但是下面的 eslintPluginPrettier 的会覆盖 上的 ‘no-console’ ,就导致 这个 no-console 的设置没有见效,以是必要 在下面继承新增一个 rules
|