1.前言
"color: #ff0000">2.eslint 配置
2.1 代码规范
"_blank" href="https://github.com/vuejs/eslint-plugin-vue" rel="external nofollow" >eslint-plugin-vue。并使用 Prettier 格式化代码,使样式与规则保持一致。.eslintrc.js 配置如下:
{ root: true, // 当前配置为根配置,将不再从上级文件夹查找配置 parserOptions: { parser: 'babel-eslint', // 采用 babel-eslint 作为语法解析器 sourceType: 'module', // 指定来源的类型,有两种script或module ecmaVersion: 6, //指定ECMAScript支持的版本,6为ES6 }, env: { browser: true, // 设置为所需检查的代码是在浏览器环境运行的 es6: true // 设置所需检查代码为 es6 语法书写 }, extends: ['plugin:vue/recommended', 'eslint:recommended'],// 扩展使用 vue 检查规则和eslint推荐规则 rules: { 'vue/attribute-hyphenation': 0, // 忽略属性连字 'vue/max-attributes-per-line':[2, { singleline: 10, multiline: { max: 1, allowFirstLine: false } }], // 每行最大属性 'vue/singleline-html-element-content-newline': 'off', // 单行html元素内容在新的一行 'vue/multiline-html-element-content-newline': 'off', // 多行html元素内容在新的一行 'vue/html-closing-bracket-newline': 'off', // html右括号在新的一行 'vue/no-v-html': 'off', // 不使用v-html 'vue/html-self-closing': 0, // 忽略html标签自闭合 'accessor-pairs': 2, // 应同时设置setter和getter 'arrow-spacing': [2, { before: true, after: true }], // 箭头间距 'vue/require-default-prop': 0, // 不检查默认属性 'vue/require-prop-types': 0, // 不检查默认类型 'block-spacing': [2, 'always'], // 块间距 'brace-style': [2, '1tbs', { allowSingleLine: true }], // 大括号样式允许单行 'camelcase': [2, { properties: 'always' }], //为属性强制执行驼峰命名 'comma-dangle': [2, 'never'], // 逗号不使用悬挂 'comma-spacing': [2, { before: false, after: true }], // 逗号间距 'comma-style': [2, 'last'], //(默认)与数组元素,对象属性或变量声明在同一行之后和同一行需要逗号 'constructor-super': 2, 'consistent-this': [2, 'that'], //强制this别名为that 'curly': [2, 'multi-line'], // 当一个块只包含一条语句时,不允许省略花括号。 'dot-location': [2, 'property'], //成员表达式中的点应与属性部分位于同一行 'eol-last': 2, // 强制文件以换行符结束(LF) 'eqeqeq': ['error', 'always', { null: 'ignore' }], // 强制使用全等 'generator-star-spacing': [2, { before: true, after: true }], // 生成器中'*'两侧都要有间距 'global-require': 1, // 所有调用require()都位于模块的顶层 'indent': [2, 2, { SwitchCase: 2 }], //缩进风格 'key-spacing': [2, { beforeColon: false, afterColon: true }], // 强制在对象字面量属性中的键和值之间保持一致的间距 'keyword-spacing': [2, { before: true, after: true }], // 关键字如if/function等的间距 'new-cap': [2, { newIsCap: true, capIsNew: false }],// 允许在没有new操作符的情况下调用大写启动的函数;(默认)要求new使用大写启动函数调用所有操作符 'new-parens': 2, // JavaScript通过new关键字调用函数时允许省略括号 'no-array-constructor': 1, // 不允许使用Array构造函数。除非要指定生成数组的长度 'no-console': process.env.NODE_ENV === 'production' "htmlcode">npm install -g eslint全局安装 Prettier
npm install -g prettiervscode 插件市场搜索 eslint 和 prettier,下载并安装。
编辑器 setting.json 中加如下配置:
/* 开启保存时自动格式化 */ "editor.formatOnSave": true, /* eslint的配置 */ "eslint.enable": true, "eslint.run": "onSave", "eslint.options": { "extensions": [ ".js", ".vue" ] }, "editor.codeActionsOnSave": { "source.fixAll.eslint": true // 保存时自动修复 }, // 关闭 vscode 默认的检查工具 "html.validate.scripts": false, "javascript.validate.enable": false, "eslint.alwaysShowStatus": true, "eslint.format.enable": true, "scss.lint.duplicateProperties": "error", "css.lint.duplicateProperties": "error", "less.lint.zeroUnits": "error", "eslint.validate": [ "javascript", "javascriptreact", "vue-html", "vue", "html" ], /* prettier的配置 */ "prettier.printWidth": 120, // 超过最大值换行 "prettier.tabWidth": 2, // 缩进字节数 "prettier.useTabs": true, // 缩进使用tab "prettier.semi": false, // 句尾添加分号 "prettier.singleQuote": true, // 使用单引号代替双引号 "prettier.proseWrap": "preserve", // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行 "prettier.arrowParens": "avoid", // (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号 "prettier.bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }" "prettier.endOfLine": "auto", // 结尾是 \n \r \n\r auto "prettier.htmlWhitespaceSensitivity": "ignore", "prettier.ignorePath": ".prettierignore", // 不使用prettier格式化的文件填写在项目的.prettierignore文件中 "prettier.requireConfig": false, // Require a "prettierconfig" to format prettier "prettier.trailingComma": "none", // 在对象或数组最后一个元素后面是否加逗号 /* 每种语言默认的格式化规则 */ "[html]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[css]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[scss]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[vue]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },使用 vuecli 创建项目时,不选择 lint 选项。
在项目开发依赖中,加入@vue/cli-plugin-eslint、babel-eslint、eslint、eslint-plugin-vue、prettier、prettier-eslint 依赖
npm install @vue/cli-plugin-eslint babel-eslint eslint eslint-plugin-vue prettier prettier-eslint –-save-dev在项目 package.json 内加入 lint 命令。
开发时,保存文件,即可按 prettier 规则格式化文件,并自动修复可修复的 issue,不能自动修复的,请根据提示,手动修复。
提示:vscode 已设置保存时格式化,但有时并不会格式化文件。已保存的文件还存在报错的,请手动格式化,并修改相应问题后,再次保存。
提交代码前,运行 npm run lint 代码风格检查,确认无误后再进行提交。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。