IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> eslint+prettier配置流程 -> 正文阅读

[JavaScript知识库]eslint+prettier配置流程

0,开始之前

删除package.json内所有和eslint相关的包

删除node_modules并重新npm i

1,安装eslint

执行命令npx eslint --init

1
请添加图片描述

2
请添加图片描述

3
请添加图片描述

4
请添加图片描述

5
请添加图片描述

6

在这里插入图片描述

7

在这里插入图片描述

8
在这里插入图片描述

9
在这里插入图片描述

10
在这里插入图片描述

完成之后会在项目根目录生成.eslint.js文件

 // .eslint.js
module.exports = {
  env: {
    browser: true,
    es2021: true
  },
  extends: [
    "plugin:vue/essential",
    "standard"
  ],
  parserOptions: {
    ecmaVersion: "latest",
    parser: "@typescript-eslint/parser",
    sourceType: "module"
  },
  plugins: [
    "vue",
    "@typescript-eslint"
  ],
  rules: {
        quotes: [1, "double"], // 强制使用双引号
        semi: 1, // 末尾分号警告
        indent: "off", // 关闭eslint缩进警告
        "eol-last": ["error", "never"], // 设置不以换行符结尾
        "max-len": ["error", { code: 120 }], // 每行最大长度120字符
        "no-console": 0, // 关闭console报错
        "space-before-function-paren": ["error", "never"], // 禁止函数名前后有空格
        "keyword-spacing": ["error", { before: true, after: true }], // 关键字后面是否要空一格
        "no-debugger": 2, // 禁止使用debugger
  },
  globals: { // 全局变量忽略检测
    configUrl: "readonly"
  }
}

2, 设置保存时自动修复

此时,执行 eslint index.js --fix可以修复已存在 的eslint语法错误

但是每次执行这个命令会很麻烦,所以可以通过修改vscode的配置项,保存时就进行修复

需要用到eslint的vscode插件

0
在这里插入图片描述

1
在这里插入图片描述

2
在这里插入图片描述

将以下配置加入settings.json

    "editor.formatOnType": true,
    "editor.formatOnSave": true,
    "eslint.codeAction.showDocumentation": {
        "enable": true
    },
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true,
    },
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "html",
        "vue"
    ]

此时 ctrl+s 保存代码时就能修复eslint部分错误

3,安装prettier进行代码风格优化

执行npm i prettier -D命令安装prettier

安装完之后 执行npx prettier --write +对应文件 即可进行代码风格格式化,凌乱的代码会变得工整

创建.prettier.js文件

// .prettier.js
module.exports = {
    semi: false,// 格式化不加分号
    singleQuote: false, // 格式化以单引号为主
}

4,保存时自动进行风格优化

需要用到prettier的vscode插件

在这里插入图片描述

设置自动保存

将以下配置加入settings.json(同上一步)

//setting.json文件
"[vue]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[javascript]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },
    "[html]": {
        "editor.defaultFormatter": "vscode.html-language-features"
    },
    "[typescript]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[typescriptreact]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[javascriptreact]": {
        "editor.defaultFormatter": "vscode.typescript-language-features"
    },

eslint和prettier的默认格式化规则有冲突

执行命令npm i eslint @vue/eslint-config-prettier eslint-config-prettier eslint-plugin-prettier eslint-plugin-vue prettier -D

解决eslint和prettier的冲突问题

修改.eslint.js文件为

// eslintrc.js
module.exports = {
  env: {
    browser: true,
    es2021: true,
  },
  extends: [
    "@vue/prettier",
    "plugin:vue/vue3-essential",
    "eslint:recommended",
    "airbnb-base",
  ],
  parserOptions: {
    ecmaVersion: "latest",
    parser: "@typescript-eslint/parser",
    sourceType: "module",
  },
  plugins: ["vue", "@typescript-eslint"],
  rules: {
    quotes: [1, "double"], // 强制使用双引号
    semi: 1, // 末尾分号警告
    indent: "off", // 关闭eslint缩进警告
    "max-len": ["error", { code: 120 }], // 每行最大长度120字符
    "no-console": 0, // 关闭console报错
    "space-before-function-paren": ["error", "never"], // 禁止函数名前后有空格
    "keyword-spacing": ["error", { before: true, after: true }], // 关键字后面是否要空一格
    "no-debugger": 2, // 禁止使用debugger
    "comma-dangle": "off",
  },
  globals: {
    // 全局变量忽略检测
    configUrl: "readonly",
  },
};
// .prettier.js
module.exports = {
    semi: false,// 格式化不加分号
    singleQuote: false, // 格式化以单引号为主
    useTabs: false
}  

5,添加.eslintignore文件忽略校验(可根据需要自行添加)

// .eslintignore
/public
/src/utils
/dist

6, 使用路径别名导致的ctrl+左键无法进入对应文件问题

原因是Path Intellisense 插件无法读取别名

解决方法:

vs Code 的setting.json中新增:

 "path-intellisense.mappings": {
        "@": "${workspaceRoot}/src",
        "_c": "${workspaceRoot}/src/components",
    },

7,解决路径别名报错问题

.eslintrc.js新增setting

//.eslintrc.js
 settings: {
    "import/resolver": {
      webpack: {
        config: path.join(__dirname, './build/webpack.base.config.js')
      },
      alias: [["/@", "./src"]], //自行配置
    },
  },

8,设置缩进以及行尾序列

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vGnIeSlz-1656054421266)(\images\image-20220510145741127.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KRPskTgP-1656054421267)(\images\image-20220510145656531.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKYdr9yJ-1656054421281)(\images\image-20220510145831118.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQgKstqU-1656054421283)(\images\image-20220510145852551.png)]

根目录下新建文件.editorconfig

root = true
 
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = false
trim_trailing_whitespace = false

9,主动修复

按照上述流程设置完成之后,重启一下vscode

ctrl+s即可实现代码风格统一+代码基础错误修复

目前只实现了基础的一版,像变量或者方法未使用等错误类型还需手动修复 不过eslint都会进行提示

部分错误可以通过快捷修复的方式进行修复

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6YLpAHm-1656054421285)(\images\image-20220510170821881.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kzx4DrNZ-1656054421286)(\images\image-20220510170846992.png)]

没有快捷修复的地方会有eslint的错误提示;

例如:
在这里插入图片描述

错误原因是应使用===全等而非==

手动替换即可;

尽量使用es6的语法例如箭头函数取代匿名函数function

任何情况下尽量不要再使用var关键字,而以caonstlet取而代之

未完待续------

希望大家早日实现全局代码无报红的小目标~

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 18:55:53  更:2022-06-29 18:59:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:05:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码