当前位置: 首页>编程语言>正文

vue项目配置eslint保存格式化 vue安装eslint


文章目录

  • ESLint
  • 创建 Vue 项目
  • 安装 ESLint
  • 配置 WebStrom
  • 添加 ESLint 配置文件
  • .eslintignore
  • .eslintrc.js
  • 格式化代码快捷键
  • 右键格式化
  • 快捷键格式化


ESLint

ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目。它的目标是提供一个插件化的javascript代码检测工具。

在一个 Vue 项目中要使用 ESLint 工具,首先需要安装 Vue,并创建一个简单的 Vue 项目,而后在 Vue 项目的基础上安装 ESLint 依赖,最后进行 ESLint 的相关配置。

创建 Vue 项目

1、使用 npm 安装 Vue3 的最新版本。

npm install vue@next

2、安装最新版本的 Vue-cli 脚手架模板。

npm install -g @vue/cli@next

3、使用 Vite 构建项目。

npm init vite-app <project-name>
cd <project-name>
npm install
npm run dev

安装 ESLint

我们可以使用 npm 命令安装 ESLint,一共需要安装三个 ESLint 项目的依赖,本地安装和全局安装任选一个即可。

  • 本地安装
npm install eslint --save-dev
npm install eslint-plugin-vue --save-dev
npm install babel-eslint --save-dev
  • 全局安装
npm install -g eslint
npm install -g eslint-plugin-vue
npm install -g babel-eslint

配置 WebStrom

在 Vue 项目中安装完 ESLint 依赖,还需要对 WebStrom 进行配置。

打开 File -> Settings -> Languages & Frameworks -> JavaScript -> Code Quality Tools -> ESLint

界面如下:

vue项目配置eslint保存格式化 vue安装eslint,vue项目配置eslint保存格式化 vue安装eslint_javascript,第1张

最后,点击界面右下角的 Apply 按钮,应用该配置即可。

添加 ESLint 配置文件

在没有 ESLint 配置文件的情况下,会使用默认的代码风格配置进行检查,我们可以给项目增加 ESLint 的配置文件来对项目进行代码风格配置,变成自己适应的代码风格。

  • 在项目的顶级目录下新增 .eslintrc.js.eslintignore 文件,其中 .eslintrc.js 文件是 ESLint 的代码风格配置文件,而 .eslintignore 文件,则是忽略 ESLint 代码风格检查的文件的名称或路径的配置文件。

.eslintignore

build/*.js
src/assets
public
dist

.eslintrc.js

module.exports = {
  root: true,
  parserOptions: {
    parser: 'babel-eslint',
    sourceType: 'module'
  },
  env: {
    browser: true,
    node: true,
    es6: true
  },
  extends: ['plugin:vue/recommended', 'eslint:recommended'],

  // add your custom rules here
  // it is base on https://github.com/vuejs/eslint-config-vue
  rules: {
    'vue/max-attributes-per-line': [2, {
      'singleline': 10,
      'multiline': {
        'max': 5,
        'allowFirstLine': true
      }
    }],
    'vue/singleline-html-element-content-newline': 'off',
    'vue/multiline-html-element-content-newline': 'off',
    'vue/name-property-casing': ['error', 'PascalCase'],
    'vue/no-v-html': 'off',
    'accessor-pairs': 2,
    'arrow-spacing': [2, {
      'before': true,
      'after': true
    }],
    'block-spacing': [2, 'always'],
    'brace-style': [2, '1tbs', {
      'allowSingleLine': true
    }],
    'camelcase': [0, {
      'properties': 'always'
    }],
    'comma-dangle': [2, 'never'],
    'comma-spacing': [2, {
      'before': false,
      'after': true
    }],
    'comma-style': [2, 'last'],
    'constructor-super': 2,
    'curly': [2, 'multi-line'],
    'dot-location': [2, 'property'],
    'eol-last': 2,
    'eqeqeq': ['error', 'always', { 'null': 'ignore' }],
    'generator-star-spacing': [2, {
      'before': true,
      'after': true
    }],
    'handle-callback-err': [2, '^(err|error)$'],
    'indent': [2, 2, {
      'SwitchCase': 1
    }],
    'jsx-quotes': [2, 'prefer-single'],
    'key-spacing': [2, {
      'beforeColon': false,
      'afterColon': true
    }],
    'keyword-spacing': [2, {
      'before': true,
      'after': true
    }],
    'new-cap': [2, {
      'newIsCap': true,
      'capIsNew': false
    }],
    'new-parens': 2,
    'no-array-constructor': 2,
    'no-caller': 2,
    'no-console': 'off',
    'no-class-assign': 2,
    'no-cond-assign': 2,
    'no-const-assign': 2,
    'no-control-regex': 0,
    'no-delete-var': 2,
    'no-dupe-args': 2,
    'no-dupe-class-members': 2,
    'no-dupe-keys': 2,
    'no-duplicate-case': 2,
    'no-empty-character-class': 2,
    'no-empty-pattern': 2,
    'no-eval': 2,
    'no-ex-assign': 2,
    'no-extend-native': 2,
    'no-extra-bind': 2,
    'no-extra-boolean-cast': 2,
    'no-extra-parens': [2, 'functions'],
    'no-fallthrough': 2,
    'no-floating-decimal': 2,
    'no-func-assign': 2,
    'no-implied-eval': 2,
    'no-inner-declarations': [2, 'functions'],
    'no-invalid-regexp': 2,
    'no-irregular-whitespace': 2,
    'no-iterator': 2,
    'no-label-var': 2,
    'no-labels': [2, {
      'allowLoop': false,
      'allowSwitch': false
    }],
    'no-lone-blocks': 2,
    'no-mixed-spaces-and-tabs': 2,
    'no-multi-spaces': 2,
    'no-multi-str': 2,
    'no-multiple-empty-lines': [2, {
      'max': 1
    }],
    'no-native-reassign': 2,
    'no-negated-in-lhs': 2,
    'no-new-object': 2,
    'no-new-require': 2,
    'no-new-symbol': 2,
    'no-new-wrappers': 2,
    'no-obj-calls': 2,
    'no-octal': 2,
    'no-octal-escape': 2,
    'no-path-concat': 2,
    'no-proto': 2,
    'no-redeclare': 2,
    'no-regex-spaces': 2,
    'no-return-assign': [2, 'except-parens'],
    'no-self-assign': 2,
    'no-self-compare': 2,
    'no-sequences': 2,
    'no-shadow-restricted-names': 2,
    'no-spaced-func': 2,
    'no-sparse-arrays': 2,
    'no-this-before-super': 2,
    'no-throw-literal': 2,
    'no-trailing-spaces': 2,
    'no-undef': 2,
    'no-undef-init': 2,
    'no-unexpected-multiline': 2,
    'no-unmodified-loop-condition': 2,
    'no-unneeded-ternary': [2, {
      'defaultAssignment': false
    }],
    'no-unreachable': 2,
    'no-unsafe-finally': 2,
    'no-unused-vars': [2, {
      'vars': 'all',
      'args': 'none'
    }],
    'no-useless-call': 2,
    'no-useless-computed-key': 2,
    'no-useless-constructor': 2,
    'no-useless-escape': 0,
    'no-whitespace-before-property': 2,
    'no-with': 2,
    'one-var': [2, {
      'initialized': 'never'
    }],
    'operator-linebreak': [2, 'after', {
      'overrides': {
        '?': 'before',
        ':': 'before'
      }
    }],
    'padded-blocks': [2, 'never'],
    'quotes': [2, 'single', {
      'avoidEscape': true,
      'allowTemplateLiterals': true
    }],
    'semi': [2, 'never'],
    'semi-spacing': [2, {
      'before': false,
      'after': true
    }],
    'space-before-blocks': [2, 'always'],
    'space-before-function-paren': [2, 'never'],
    'space-in-parens': [2, 'never'],
    'space-infix-ops': 2,
    'space-unary-ops': [2, {
      'words': true,
      'nonwords': false
    }],
    'spaced-comment': [2, 'always', {
      'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
    }],
    'template-curly-spacing': [2, 'never'],
    'use-isnan': 2,
    'valid-typeof': 2,
    'wrap-iife': [2, 'any'],
    'yield-star-spacing': [2, 'both'],
    'yoda': [2, 'never'],
    'prefer-const': 2,
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
    'object-curly-spacing': [2, 'always', {
      objectsInObjects: false
    }],
    'array-bracket-spacing': [2, 'never']
  }
}

格式化代码快捷键

在配置完 ESLint 代码风格检查工具之后,我们可以直接格式化代码,使得我们的前端代码自动格式化为 ESLint 的所配置的代码风格。

右键格式化

在需要格式化的文件中点击鼠标右键,可以看到右键菜单中有一个 Fix ESLint Problems 的选项,点击该选项,即可格式化该文件的全部代码。

vue项目配置eslint保存格式化 vue安装eslint,vue项目配置eslint保存格式化 vue安装eslint_Vue_02,第2张

快捷键格式化

右键菜单的方法毕竟还是比较繁琐的,我们还可以通过配置快捷键的方式,直接使用快捷键对文件代码进行格式化操作。

打开 File -> Settings -> Keymap

vue项目配置eslint保存格式化 vue安装eslint,vue项目配置eslint保存格式化 vue安装eslint_vue项目配置eslint保存格式化_03,第3张



https://www.xamrdz.com/lan/5yy1931463.html

相关文章: