Vue项目设置Eslint规则

1 篇文章 0 订阅

一、需求

当我们创建完vue的新项目后,希望写完代码后会自动格式化代码,以及代码规范化的校验,以便团队相互配合开发

二、Vscode安装插件

安装 ESLlint、Vetur、Prettier 这三个插件。

1.eslint

在团队协作中,为避免低级 Bug、产出风格统一的代码,会预先制定编码规范。使用 Lint 工具和代码风格检测工具,则可以辅助编码规范执行,有效控制代码质量

2.Vetur

这个插件主要作用就是让vscode识别.vue文件,实现语法高亮。

3.Prettier

它的作用是将我们散漫的风格迥异的代码格式化为符合规范的代码。

三、代码配置

🍦打开.eslintrc.js文件,我们可以在rules处增加一个规则,这些规则会覆盖刚刚我们采用的airbnb默认配置,也就是说,我们可以在这里自定义,这里是我常用的配置:

module.exports = {
  /**
   * 文件内局部设置
   * 【】eslint可以具体文件中设置特定代码的规则,常用于跳过某条语句的检测。
   * 【】注销全部规则,在代码前新建一行,添加注销 /* eslint-disable *\/  。如果没有恢复设置的语句,则下列全部代码都会跳过检测。
   * 【】恢复eslint,在代码前新建一行,添加注销 /* eslint-enable *\/
   * 【】指定忽略的规则,/* eslint-disable no-alert, no-console *\/
   * 【】在特定行禁用,// eslint-disable-line
   * 【】在下一行禁用,// eslint-disable-next-line
   */

  // 标识当前配置文件为eslint的根配置文件,让其停止在父级目录中继续寻找。
  root: true,
  // 此项指定环境的全局变量,下面的配置指定为浏览器环境
  env: {
    node: true,
    jquery: true,
  },
  // 此项是用来配置标准的js风格,就是说写代码的时候要规范的写,如果你使用vs-code我觉得应该可以避免出错
  extends: ['plugin:vue/recommended', '@vue/prettier'],
  /*
   下面这些rules是用来设置从插件来的规范代码的规则,使用必须去掉前缀eslint-plugin-
    主要有如下的设置规则,可以设置字符串也可以设置数字,两者效果一致
    "off" -> 0 关闭规则
    "warn" -> 1 开启警告规则
    "error" -> 2 开启错误规则
  */

  rules: {
    'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
    'vue/no-v-html': 'off',

    // 'no-empty': 0, //块语句中的内容不能为空 - 关闭
    // 'no-spaced-func': 2, //函数调用时 函数名与()之间不能有空格 - 开启
    // 'no-undef': 1, //不能有未定义的变量 - 打开 1是警告
    // 'no-unused-vars': [
    //   2,
    //   {
    //     vars: 'all',
    //     args: 'none',
    //   },
    // ], //不能有声明后未被使用的变量或参数 0关 1警告 2声明不使用就爆红
    'space-before-function-paren': [0, 'never'], //函数定义时括号前面要不要有空格:设置为0就是关闭这个规则的检验
    'prefer-const': 0, //首选const -- 关闭(就可以用var let const)
    'vue/html-self-closing': [
      'error',
      {
        html: {
          void: 'never',
          normal: 'any',
          component: 'any',
        },
        svg: 'always',
        math: 'always',
      },
    ], //html使用单闭合标签 -打开(配置:在html中never从不开启)
  },
  parserOptions: {
    // eslint解析器配置项
    // 解析器是用于解析js代码的,怎么去理解每一个表达式,有点C++中编译器的概念,会对js进行一些语法分析,语义分析什么的,才能判断语句符不符合规范。而不是通过简单的字符串对比。
    parser: 'babel-eslint', // 指定eslint解析器:babel-eslint是围绕Babel解析器的包装器使其与ESLint兼容;可能值espree、esprima
  },
  overrides: [
    {
      files: [
        '**/__tests__/*.{j,t}s?(x)',
        '**/tests/unit/**/*.spec.{j,t}s?(x)',
      ],
      env: {
        jest: true,
      },
    },
  ],
}

🎍保存代码时自动规范格式​

这个需要在vscode中进行配置,按住ctrl+shift+p,输入setting,打开setting.json,完成以下配置:

{
  "[vue]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "editor.quickSuggestions": {
    "strings": true
  },
  "workbench.colorTheme": "Panda Syntax",
  "editor.tabSize": 2,
  "editor.detectIndentation": false,
  "emmet.triggerExpansionOnTab": true,
  "editor.formatOnSave": true,
  "javascript.format.enable": true,
  "git.enableSmartCommit": true,
  "git.autofetch": true,
  "git.confirmSync": false,
  "[json]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "liveServer.settings.donotShowInfoMsg": true,
  "explorer.confirmDelete": false,
  "javascript.updateImportsOnFileMove.enabled": "always",
  "typescript.updateImportsOnFileMove.enabled": "always",
  "files.exclude": {
    "**/.idea": true
  },
  "editor.codeActionsOnSave": {
    "source.fixAll.stylelint": true,
    "source.fixAll.eslint": true
  },
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[jsonc]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "[html]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "editor.suggest.snippetsPreventQuickSuggestions": false,
  "prettier.htmlWhitespaceSensitivity": "ignore",
  "prettier.vueIndentScriptAndStyle": true,
  "docthis.includeAuthorTag": true,
  "docthis.includeDescriptionTag": true,
  "docthis.enableHungarianNotationEvaluation": true,
  "docthis.inferTypesFromNames": true,
  "vetur.format.defaultFormatter.html": "prettier",
  "files.autoSave": "onFocusChange",
  "path-intellisense.mappings": {
    "@": "${workspaceRoot}/src"
  },
  "files.eol": "\n",
  "i18n-ally.localesPaths": ["src/i18n"],
  "editor.defaultFormatter": "esbenp.prettier-vscode"
}

🍃另外,有些文件,我们并不需要用eslint作为校验,就可以在根目录下新建一个.eslintignore文件来管理:

src/assets
src/icons
public
dist
node_modules

🎁再来谈代码风格问题

像缩进是用空格还是用tab啦,使用单引号还是双引号啦,句末需不需要分号啦,都属于代码风格问题,他们影响的更多的是代码的统一风格。而这些,prettier也可以进行规范。

项目级的配置,在项目根目录添加配置文件prettier.config.js 或者 .prettierrc.js,然后配置:

module.exports = {
  printWidth: 80, // 超过最大值换行
  tabWidth: 2, // 缩进字节数
  useTabs: false, // 句尾添加分号
  semi: false, // 使用单引号代替双引号 必须无分号结尾
  singleQuote: true, // 使用单引号代替双引号 必须无分号结尾
  quoteProps: 'as-needed',
  jsxSingleQuote: false, // 在jsx中使用单引号代替双引号
  trailingComma: 'es5', // 在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号)
  bracketSpacing: true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"
  jsxBracketSameLine: false, // 在jsx中把'>' 是否单独放一行
  arrowParens: 'always',
  htmlWhitespaceSensitivity: 'ignore',
  vueIndentScriptAndStyle: true,
  endOfLine: 'lf',
}

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
README.TXT NOTES ON MS-DOS VERSION 5.0 =========================== In this file the following topics are covered: 1. Introduction 2. Solving Setup Problems 2.1 Priam and Everex Hard Disks 2.2 SyQuest Removable Hard Disk 2.3 Bernoulli Drive 2.4 Disk Manager 2.5 SpeedStor and Volume Expansion 2.6 Novell Partitions 2.7 Vfeature Deluxe 2.8 Columbia Data Systems Device Driver 2.9 Incompatible Partition 2.10 WYSE Partitions 2.11 286 Accelerator Cards 2.12 Bernoulli Cache 2.13 AT&T 6300 Computers 2.14 LANtastic 2.15 Western Digital SCSI Hard-Disk Controllers 2.16 Change CONFIG.SYS File 2.17 Toshiba T1600 and a Hard RAM Disk 3. Installing MS-DOS 5.0 on OS/2 Systems 3.1 Installing MS-DOS 5.0 and OS/2 Dual-Boot Systems 3.2 Using the Uninstall Program on an OS/2 System 4. Solving Memory Problems 4.1 386MAX 4.2 All Computers Expanded-Memory Driver 4.3 Bus Master DMA Controller 4.4 HIMEM.SYS Location 4.5 INT15 Access to Extended Memory 4.6 Intel LIM Driver 4.7 Phoenix BIOS and HIMEM.SYS 4.8 QEMM 4.9 XMAEM.SYS and XMA2EM.SYS 5. Solving Problems with Windows 5.1 DOS Applications in Windows Enhanced Mode 5.2 EMM386.EXE Location 5.3 WINA20.386 File 5.4 Windows 3.0 Enhanced Debug Version 5.5 Windows 2.03 5.6 Windows/286 2.1 5.7 Windows 386 and the Upper Memory Area 6. Making Your Hardware Compatible with MS-DOS 5.0 6.1 101-key Keyboards and QBasic/MS-DOS Editor 6.2 Acer 1100/33 6.3 Adaptec Controller Boards 6.4 Amstrad Systems and KEYB.COM 6.5 Hardcard II 6.6 COMPAQ EXTDISK.SYS Driver 6.7 Corel System Drivers 6.8 External Disk Drives 6.9 Mice and MS-DOS Shell 6.10 NCR VGA BIOS 6.11 Olivetti Systems 6.12 Toshiba T3100SX 6.13 Western Digital VGA Card 6.14 Zenith Computers 7. Making Your Network Compatible with MS-DOS 5.0 7.1 3+Share 7.2 AT&T StarGROUP 7.3 DCA 10Net and Word5 7.4 DOS LAN Requester 7.5 I

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值