VSCode-老项目加入eslint + prettier

0. 安装插件

  • eslint
  • perttier -code formatter

 

1. 在项目中安装eslint

npm install -D eslint

2. 项目中初始化eslint

eslint --init

之后会出现一些询问:

image.png

eslint --init 做了什么?

  • 生成eslint配置文件【与上述选项相关】
module.exports = {
  env: {
    browser: true,
    es6: true
  },
  extends: ['plugin:vue/essential', 'standard'],
  globals: {
    Atomics: 'readonly',
    SharedArrayBuffer: 'readonly'
  },
  parserOptions: {
    ecmaVersion: 11,
    sourceType: 'module'
  },
  plugins: ['vue'],
  rules: {}
}
  • 安装了以下插件

"eslint-config-standard": "^14.1.1",

  "eslint-plugin-import": "^2.20.2",

  "eslint-plugin-node": "^11.1.0",

  "eslint-plugin-promise": "^4.2.1",

  "eslint-plugin-standard": "^4.0.1",

  "eslint-plugin-vue": "^6.2.2", // 检测template模板中的问题

安装完成之后发生了什么?

我的所有文件都红了..... 离成功已经不远了!

image.png

3. 配置package.json 自动检测

// 在scripts中加入以下命令:
"lint": "eslint --ext .js,.vue src"

执行一下就可以看到一堆报错了===》 错误太多,吓得我中途退出

image.png

4. 安装prettier插件

npm install --save-dev eslint-plugin-prettier eslint-config-prettier prettier-eslint-cli

配置prettierrc.js

// 项目根目录下新建prettierrc.js 并加入以下配置项
module.exports = {
  "printWidth": 120,
  "semi": false,
  "singleQuote": true,
  "trailingComma": "none",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
  "arrowParens": "avoid",
  "requirePragma": false,
  "proseWrap": "preserve",
  'singleQuote': true,
  "endOfLine": "auto" 
}

配置eslintrc.js

// eslintrc.js中extends字段中加入plugin:prettier/recommended
  extends: ['plugin:vue/essential', 'standard', 'plugin:prettier/recommended'],

5. 配合lint-fix 自动修正

// 在package.json的scripts中加入以下命令:
"lint-fix": "eslint --ext .js,.vue src --fix"

运行 npm run lint 【17:38开始运行,17:51 这个命令还没有任何动静===】

image.png

于是我决定人肉fix

6. 开启编辑器自动修复

vscode版本: 1.45.1【不同的版本配置有些许区别】

// 在编辑器setting.json中加入以下代码
/* eslint插件配置 */
  "eslint.enable": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true, //eslint保存文件时自动修复
  },
  "eslint.alwaysShowStatus": true,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "html",
    "vue",
    "jsx"
  ],
  "eslint.options": {
    "extensions": [
      ".js",
      ".vue"
    ]
  },

按下ctrl + s 世界都清净了

4.gif

7. 不能被自动格式化的报错

保存时按照lint工具格式化已经解决了大部分问题,但是仍然有一部分是要自己手动解决的,比如 == 必须写成===;比如no-unused-expressions定义了变量却没有使用 等等等等

image.png

如果你觉得有些规矩不合适你,可能是你的问题,学着适应!但是如果已经感受到生理上的不适了, 那么就在eslint 配置工具中把它忽略吧😀取其精华去其糟粕~

8. 遗留的问题

单独的scss文件不能被格式化

解决方式: 安装stylelint-plus

自动格式化配置如下:

// 在vscode setting.json中配置  
"[scss]": {
    "editor.formatOnSave": true
  },

5.gif

本文来自

随手记

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章