您的位置 首页 > 新农资讯

vue项目eslint配置,vuecli eslint

/**

* 参考文件

* [eslint 英文文档] https://eslint.org/docs/user-guide/cconfiguring

* 【eslint中文文档】http://eslint.cn/docs/rules/

*/

/**

*eslint的使用方法有3种。

*[1]通过JS代码中的注释使用

* [2] 当你设置webpack的eslintConfig字段时,eslint会自动在项目的package.json文件中搜索配置。

* [3] 通过配置文件使用配置文件可以采用多种文件格式,包括JavaScript、JSON 和YAML。

*/

/**

* 文件被忽略

* [1] 使用eslint 跳过对特定文件的检测

*[2] 在当前工作目录的“.eslintignore”文件中设置

*使用与“.gitignore”相同的Glob路径描述方法。

* [3] 也可以通过package.json文件中的eslintIgnore参数进行设置。

*/

/**

* 文件中的本地设置

* [1] eslint 允许您为特定文件中的特定代码设置规则。这通常用于跳过某些语句的检测。

* [2] 注销所有规则,在代码前新建一行,添加log out /* eslint-disable *\/。如果没有恢复设置的语句,以下所有代码都会跳过检测。

* [3]恢复eslint,在代码前新建一行,添加logout /* eslint-enable *\/。

* [4] 指定要忽略的规则。 /* eslint-禁用无警报、无控制台*\/

* [5] 禁用特定行//eslint-disable-line

* [6] 在下一行禁用//eslint-disable-next-line

*/

模块. 导出={

/**

* 根目录识别

* http://eslint.cn/docs/user-guide/cconfiguration#using-configuration-files

* http://eslint.cn/docs/user-guide/cconfiguration#configuration-cascading-and-hierarchy

* [1] 将当前配置文件标记为最底层文件。无需搜索更高级别的文件目录。

* [2]默认的eslint配置文件搜索方式是从目标文件夹开始搜索,遍历各个内部文件夹找到配置文件,并级联使用。接下来,退出该项目并转到您的祖先文件夹。

*[3] 请注意“~/.eslintrc”的含义。 “~”指的是您的Linux 主目录。 “~/.eslintrc”是指主目录中的eslint 配置文件。对于开发人员来说,整个计算机都受到全球限制。这个设置是通过这个配置项root来设置的。如果设置了root,eslint 在发现过程中不会向上搜索。

* [4] eslint 的一个有效规则是使用最接近的配置项。距离越近的设置项,覆盖其他设置项的优先级越高。例如,一个项目可以将配置文件添加到不同的文件夹中,并且这些规则将以重叠组合的形式启用。

*/

root: true, //识别当前配置文件为eslint的根配置文件,并停止在父目录中搜索。

/**

* 解析器

* http://eslint.cn/docs/user-guide/cconfiguring#specifying-parser

*[1] ESLint默认使用Espree作为解析器

* [2] 解析器必须是本地安装的npm 模块。也就是说,它必须位于本地node_module 内。

* [3]解析器用于解析JS代码。它理解每个表达式的方式在概念上类似于C++编译器,它对JS进行语法和语义分析,以确定语句中的符号是否不合规。在规格中。而不是简单的字符串比较。

* [4]解析器有很多,但支持eslint的解析器如下。

* Espree:默认解析器。来自Esprima 的独立解析器,具有多项优化。

* Esprima:JS标准解析器

* Babel-ESLint:Babel 解析器的包装器。 Babel本身也是一种JS解析器(如果不是,如何将其转换为兼容的代码?首先,转换之前需要进行JS解析)。如果你需要用babel 转换你的代码,你应该使用这个解析器。

* typescript-eslint-parser (实验性) - 将TypeScript 转换为ESTree 兼容格式的解析器。

* [5] 然而,在Vue项目中,通常写在parserOptions - parser中,而不是写在parser字段中。具体原因在parserOptions栏目中有介绍。

*/

//parser: 'babel-eslint',

/**

* 解析器设置项

* http://eslint.cn/docs/user-guide/cconfiguring#specifying-parser-options

* [1]这里设置的设置项被传递给解析器,由解析器检索,并进行一定程度的处理。具体用法取决于你是否使用解析器源码。这里只定义参数并创建一个规则来告诉解析器开发人员这些参数可能存在。

*[2] 设置项目如下。

* \'sourceType\': \'module\', //指定JS代码源的类型。 Script(介绍Script Tag?)模块(ES6 Module模块),默认为Script。 Vue为什么要用脚本呢?因为Vue是通过babel-loader编译的,而babel编译出来的代码是脚本模式。

* \'ecmaVersion\': 6, //支持的ES 语法版本,默认为5。请注意,这只是语法,不包括ES 全局变量。全局变量必须使用env 选项定义

* \'ecmaFeature\': { //feature表示特征,这里用来指定使用哪种其他语言对象

\'experimentalObjectRestSpread\': true, //启用对象传播

\'jsx\': true, //启用jsx语法

\'globalReturn\':true, //使return全局可用

\'impliedStrict\':true //启用严格验证模式

}

*/

解析器选项: {

/**

*为什么解析器出现在这里

* [1] 首先澄清一下,parserOptions配置参数在官方描述中并不包含parser。

* [2] 这里写的解析器是eslint-plugin-vue的需求,也是eslint-plugin-vue的自定义参数

* [3] 根据官方文档,eslint-plugin-vue插件依赖于“vue-eslint-parser”解析器。 “vue-eslint-parser”解析器仅解析.vue的html部分的内容,并且不检测它。

* [4] 由于只有一个解析器,因此在使用“vue-eslint-parser”时无法使用“babel-eslint”。所以“vue-eslint-parser”所做的就是在解析器选项中传递解析器选项。这将导致“babel-eslint”在内部被处理和检测。

* [5] 这就是解析器发挥作用的地方

*[6]相关文档地址https://vuejs.github.io/eslint-plugin-vue/user-guide/#usage

*/

parser: 'Babel Eslint',

},

/**

操作环境

* http://eslint.cn/docs/user-guide/cconfiguring#specifying-environments

* [1]环境定义了一组预定义的全局变量

* [2] 一旦检索到特定环境的全局定义,它就不会被视为开发定义,并且会跳过对该定义的检测。否则,变化量被认为是不确定的。

*[3] 常见的运行环境如下。详情请查看官方网站。

* 浏览器- 浏览器环境的全局变量。

* Node - Node.js 全局变量和Node.js 范围。

* es6 - 启用除模块之外的所有ECMAScript 6 功能(此选项自动将ecmaVersion 解析器选项设置为6)。

* amd - 与amd类似,将require()和define()定义为全局变量。

* commonjs - CommonJS 全局和CommonJS 范围(适用于仅在浏览器内运行的Browserify/WebPack 打包代码)。

* jquery - jQuery 全局变量。

* mongo - MongoDB 全局变量。

* worker - 网络工作者的全局变量。

* serviceworker - Service Worker 全局变量。

*/

env: {

browser: true, //浏览器环境

},

/**

*全局变量

* http://eslint.cn/docs/user-guide/cconfiguring#specifying-globals

* [1] 定义额外的全局开发人员定义的全局变量以跳过no-undef 规则

* [2]键值是添加的全局变量

* [3] value value用于标识变量是否可重写,类似于const的作用。 true 允许覆盖变量

* [4] 注意:为了防止修改只读全局变量,请启用no-global-assign 规则。

*/

全局: {

//gTool: true, //例如,如果定义了全局变量gTool,则可以覆盖该变量

},

/**

* 插入

* http://eslint.cn/docs/user-guide/cconfiguring#cconfiguring-plugins

*[1] 您还需要将插件下载到node_module。

* [2] 注意,插件名称忽略“eslint-plugin-”前缀,因此package.json中对应的项目名称为“eslint-plugin-vue”。

* [3] 插件功能与解析器类似,用于扩展解析器的功能,检测非常规的JS代码。还可以添加一些具体规则。

* 【4】例如eslint-plugin-vue可以帮助您检测.vue文件中的和。

*/

插件: ['vue'],

/**

* 规则继承

* http://eslint.cn/docs/user-guide/cconfiguration#extending-configuration-files

*[1] 可继承的方法如下。

*[2] eslint 只有一条内置推荐规则:“eslint:recommished”。

*[3] Shareable Configuration 是一个输出配置对象的npm 包。即通过npm将其安装到node_module中。

* 对于可共享配置,包名称中的前缀eslint-config- 可以省略。也就是说,实际安装的包名称是eslint-config-airbnb-base。

*[4]从插件获取的规则描述为“plugin:插件包名称/设置名称”。您还可以通过忽略“eslint-plugin-”前缀来注册插件。 “plugin:vue/essential”等。

*[5]继承一个配置文件,即继承另一个配置文件如“./node_modules/coding-standard/eslintDefaults.js”

*/

扩展: [

/**

* vue中添加的额外规则有v-if、v-else等指令检测。

*/

'plugin:vue/essential', //其他规则可以在https://vuejs.github.io/eslint-plugin-vue/rules/找到。

/**

*“空中民宿,空中民宿”

* [1] eslint 有两种规范:带有自己的React 插件的“eslint-config-airbnb”,以及用于基本模型的“eslint-config-airbnb-base”。

* [2] airbnb-base 包含ES6 语法检测,并且必须依赖“eslint-plugin-import”。

*[3] 如果您使用airbnb-base,则需要使用npm另外下载eslint-plugin-import。

* [4] 对于airbnb-base基础配置项目,eslint实际上添加了eslint-plugin-import插件配置。

* [5]Settings and Rules有一个“import/xxx”项目,其中修改了eslint-plugin-import设置

*/

//'基于爱彼迎',

],

/**

* 规则共享参数

* http://eslint.cn/docs/user-guide/cconfiguring#adding-shared-settings

* [1] 当为特定的规则项提供时,每个参数值和每个规则项都会被插入到这个变量中,但是对于相应的规则,以及parserOptions,无论解析器是否使用,其有用性取决于每个规则的设置。是否存在,我不知道。这里仅提供此方法

* [2] 可以说,这将在源代码验证后作为参数传递给每个规则项,但是否使用它是各个规则的问题。

*/

设置: {

/**

*

*请注意,“Import/Resolver”不是eslint 规则项,与规则“Import/Extension”不同。不是规则项

* 此处仅显示传递给每个规则项的参数名称“import/resolver”。

*“import/”是导入模块本身给出的名称,可以添加“import”来区分。不需要。

*此设置项在“导入”插件的很多规则项中都会用到,因此不在规则中设置,而是在设置中共享。

*具体使用说明请参考https://github.com/benmosher/eslint-plugin-import。

*/

'导入/解析器': {

/**

*这里传递的webpack并不意味着导入插件可以识别webpack,“eslint-import-resolver-webpack”是通过npm安装的。

*“import”插件可以通过“eslint-import-resolver-”+“webpack”查找并使用插件来分析webpack配置项。使用内部参数。

*以下主要参数与导入规则共享,以便能够正确识别导入路径:

* 扩展名: ['.js', '.vue', '.json'],

*别名:{

* 'vue$': 'vue/dist/vue.esm.js',

* '@': 已解决('src'),

* '静态':解决('静态')

* }

*/

webpack: {

config: 'build/webpack.base.conf.js'

}

}

},

/**

* 特定文件的设置

*[1] 可以通过覆盖对特定文件执行特定的eslint 检测。

* [2] 特定文件的路径以Glob格式书写,这是匹配不同文件的正常路径规则。

*[3] 配置与其他ESLint 配置几乎相同。覆盖块可以包含常规配置的任何有效配置选项,但扩展、覆盖和根除外。

*/

//覆盖: [

//{

//'文件': ['bin/*.js', 'lib/*.js'],

//'excludedFiles': '*.test.js',

//'规则': {

//'quotes': [2, '单']

//}

//}

//],

/**

* 自定义规则

* http://eslint.cn/docs/user-guide/cconfiguring#cconfiguring-rules

*[1] 基本用法

* \'off\' 或0 关闭规则

* \'warn\' 或1 将规则打开为警告(不影响退出代码)

* \'error\' 或2 将规则打开为错误(触发时退出代码1)

* 示例: 'no-restricted-syntax': 0, //表示关闭规则

* [2] 如果规则有附加选项,则规则可以通过数组传递,数组的第一位必须是错误级别。 0、1、2 等

* 示例:'semi':['error', 'never'],其中never是附加配置项

*/

规则: {

/**

*具体规则

* [1] 具体规则太多,就不一一介绍了。如果您有兴趣,请查看eslint 官网。

* [2] 请注意,xxx/aaa 规则是xxx 插件专有的规则,并未在eslint 官网上列出。您应该检查相应插件的官方网站。

* [3] 导入/扩展等,这是“eslint-plugin-import”的自定义规则。您应该检查官方网站https://github.com/benmosher/eslint-plugin-import。

*/

/**

*逻辑错误和最佳实践规则

*/

'no-debugger': process.env.NODE_ENV==='production' 2 : 0, //打包时禁用调试器

'no-console': process.env.NODE_ENV==='production' 2 : 0, //打包时禁用控制台

'no-alert': process.env.NODE_ENV==='production' 2 : 0, //打包时禁用控制台

\'for-direction\': 2, //防止无限for 循环

\'no-compare-neg-zero\': 2, //禁用与-0 的比较

'no-cond-assign': 2, //禁用条件语句中的赋值语句

\'no-control-regex\': 2, //在ASCII 中,0-31 范围内的控制字符是特殊的非打印字符。这些字符很少在JavaScript 字符串中使用,因此包含这些字符的正则表达式可能会导致错误。

\'no-dupe-args\': 2, //不允许函数定义或表达式中出现重名的参数

\'no-dupe-keys\': 2, //禁用对象文本中的重复键

\'no-duplicate-case\': 2, //禁用重复的case 标签

\'no-empty\': 2, //禁用空块语句

\'no-empty-character-class\': 2, //禁用正则表达式中的空字符集

\'no-ex-assign\': 2, //在catch 子句中禁用异常重新分配。 catch 的所有输出都是错误消息,因此无需重新赋值。

\'no-extra-boolean-cast\': 2, //禁用不必要的布尔转换,例如!true

\'no-extra-semi\': 2, //禁用不必要的分号

\'no-inner-declarations\': 2, //禁用嵌套语句块内的变量

\'no-regex-spaces\': 2, //禁用正则表达式文本中的多个空格

\'no-obj-calls\': 2, //禁止将全局对象作为函数调用

\'no-prototype-builtins\': 2, //禁止在对象实例上直接调用Object.prototype 的某些方法。

\'no-template-curly-in-string\': 2, //禁用常规字符串中的模板文字占位符语法

\'semi\': [2, 'never'], //strong制是否使用分号。

\'no-unexpected-multiline\': 2, //禁用令人困惑的多行表达式

\'no-unreachable': 2, //禁用return、throw、continue、break 语句后无法访问的代码

\'use-isnan\': 2, //必须调用isNaN()来检查NaN

\'no-unsafe-negation\': 2, //禁止在关系运算符的左操作数中使用否定运算符

\'valid-jsdoc\': 2, //strong制使用有效的JSDoc 注释

\'valid-typeof\': 2, //strong制typeof 表达式与有效字符串进行比较

\'array-callback-return\': 2, //strong制数组方法的回调函数包含return 语句

\'block-scoped-var\': 2, //将var 语句视为在块作用域内

\'complexity\': [1, 6], //增加复杂度

\'curly\': 2, //必须遵循大括号规则

\'default-case\': 1, //Switch 语句需要Default 分支

\'dot-location\': [2, 'property'], //strong制在点前换行

\'dot-notation\': 2, //点表示法和文字,首先使用点表示法

\'eqeqeq\': [2, 'smart'], //===和!==是必需的

\'guard-for-in\': 2, //需要for-in 约束

\'no-caller': 2, //禁用调用者或调用者

\'no-empty-function\': 2, //禁止空函数

\'no-empty-pattern\': 2, //禁止使用空分割模式

\'no-eval\': 2, //禁用eval()

\'no-global-assign\': 2, //禁用本机对象或只读全局对象的赋值

\'no-floating-decmal\': 2, //禁用浮点

\'no-fallthrough': 2, //防止case 语句的失败

\'no-labels\': 2, //禁用标签语句

\'no-extra-label\': 2, //禁用不必要的标签

\'no-extra-bind\': 2, //禁用不必要的函数绑定

\'no-iterator\': 2, //禁用迭代器

\'no-lone-blocks\': 2, //禁用不必要的嵌套块

\'no-loop-func\': 2, //禁用循环内的函数

“没有魔法数字”: [2, {

ignoreArrayIndexes: 真,

忽略: [-1, 0, 1, 2],

}], //禁止使用幻数。幻数是在代码中多次出现且没有明确含义的数字。最好用命名常量替换它。

\'no-multi-spaces\': 2, //禁止多个空格

\'no-multi-str\': 2, //禁用

多行字符串 \"no-new\": 2, // 禁止在不保存实例的情况下使用new \"no-new-func\": 2, // 禁用Function构造函数 \"no-new-wrappers\": 2, // 禁止原始包装实例 \"no-octal\": 2, // 禁用八进制字面量 \"no-octal-escape\": 2, // 禁止在字符串字面量中使用八进制转义序列 \"no-param-reassign\": 2, // 禁止对函数参数再赋值 \"no-proto\": 2, // 禁用__proto__,改用 getPrototypeOf 方法替代 __proto__。 \"no-redeclare\": 2, // 禁止重新声明变量 \"no-return-assign\": 2, // 禁止在返回语句中赋值 \"no-return-await\": 2, // 禁用不必要的 return await \"no-script-url\": 2, // 禁用 Script URL \"no-self-assign\": 2, // 禁止自身赋值 \"no-sequences\": 2, // 不允许使用逗号操作符 \"no-throw-literal\": 2, // 限制可以被抛出的异常 \"no-unmodified-loop-condition\": 2, // 禁用一成不变的循环条件 \"no-useless-call\": 2, // 禁用不必要的 .call() 和 .apply() \"no-useless-concat\": 2, // 禁止没有必要的字符拼接 \"no-useless-escape\": 2, // 禁用不必要的转义 \"no-useless-return\": 2, // 禁止多余的 return 语句 \"no-void\": 2, // 禁止使用void操作符 \"no-with\": 2, // 禁用 with 语句 \"prefer-promise-reject-errors\": 1, // 要求使用 Error 对象作为 Promise 拒绝的原因 \"radix\": 1, // 要求必须有基数 \"require-await\": 2, // 禁止使用不带 await 表达式的 async 函数 \"vars-on-top\": 2, // 要求将变量声明放在它们作用域的顶部 \"wrap-iife\": [2, 'inside'], // 需要把立即执行的函数包裹起来 \"strict\": [2, 'global'], // 要求或禁止使用严格模式指令 /** * 变量相关的规则 */ \"init-declarations\": 2, // 强制或禁止变量声明语句中初始化 \"no-delete-var\": 2, // 禁止删除变量 \"no-shadow\": 2, // 禁止变量声明覆盖外层作用域的变量 \"no-shadow-restricted-names\": 2, // 关键字不能被遮蔽 \"no-undef\": 2, // 禁用未声明的变量 \"no-unused-vars\": 1, // 禁止未使用过的变量 \"no-use-before-define\": 2, // 禁止定义前使用 // 代码风格 \"array-bracket-newline\": [2, 'consistent'], // 在数组开括号后和闭括号前强制换行 \"array-bracket-spacing\": 2, // 强制在括号内前后使用空格 \"array-element-newline\": [2, { multiline: true }], // 强制数组元素间出现换行 \"block-spacing\": 2, // 强制在代码块中开括号前和闭括号后有空格 \"brace-style\": 2, // 大括号风格要求 \"camelcase\": 2, // 要求使用骆驼拼写法 \"comma-dangle\": [2, 'always-multiline'], // 要求或禁止使用拖尾逗号 \"comma-spacing\": 2, // 强制在逗号周围使用空格 \"comma-style\": 2, // 逗号风格 \"computed-property-spacing\": 2, // 禁止或强制在计算属性中使用空格 \"consistent-this\": [2, 'self'], // 要求一致的 This \"eol-last\": [1, 'always'], // 要求或禁止文件末尾保留一行空行 \"func-call-spacing\": 2, // 要求或禁止在函数标识符和其调用之间有空格 \"func-style\": [2, 'declaration'], // 强制 function 声明或表达式的一致性 \"function-paren-newline\": [1, 'multiline'], // 强制在函数括号内使用一致的换行 \"indent\": [2, 2], // 强制使用一致的缩进 \"jsx-quotes\": 2, // 强制在 JSX 属性中一致地使用双引号或单引号 \"key-spacing\": 2, // 强制在对象字面量的键和值之间使用一致的空格 \"keyword-spacing\": 2, // 强制关键字周围空格的一致性 \"linebreak-style\": 2, // 强制使用一致的换行符风格,用\n,不用\r\n \"lines-around-comment\": 2, // 强制注释周围有空行 \"lines-between-class-members\": 2, // 要求在类成员之间出现空行 \"max-depth\": 2, // 强制块语句的最大可嵌套深度 \"max-len\": [2, { // 强制行的最大长度 \"code\": 100, \"tabWidth\": 4, \"ignoreUrls\": true, \"ignoreTrailingComments\": true, \"ignoreTemplateLiterals\": true, }], // \"max-lines\": [2, 1000], // 强制文件的最大行数 \"max-nested-callbacks\": [2, 5], // 强制回调函数最大嵌套深度 \"max-statements-per-line\": 2, // 强制每一行中所允许的最大语句数量 \"multiline-comment-style\": 1, // 强制对多行注释使用特定风格 \"new-cap\": 2, // 要求构造函数首字母大写 \"new-parens\": 2, // 要求调用无参构造函数时带括号 \"newline-per-chained-call\": 2, // 要求方法链中每个调用都有一个换行符 \"no-bitwise\": 2, // 禁止使用按位操作符 \"no-inline-comments\": 0, // 禁止使用内联注释 \"no-lonely-if\": 2, // 禁止 if 语句作为唯一语句出现在 else 语句块中 \"no-mixed-spaces-and-tabs\": 2, // 禁止使用 空格 和 tab 混合缩进 \"no-multiple-empty-lines\": 1, // 不允许多个空行 \"no-negated-condition\": 2, // 禁用否定表达式 \"no-nested-ternary\": 2, // 禁止使用嵌套的三元表达式 \"no-new-object\": 2, // 禁止使用 Object 构造函数 \"no-trailing-spaces\": 2, // 禁用行尾空白 \"no-underscore-dangle\": 2, // 禁止标识符中有悬空下划线 \"quotes\": [2, 'single'], // 强制使用一致的单引号 \"quote-props\": [2, 'as-needed'], // 要求对象字面量属性名称使用引号 \"operator-linebreak\": [2, 'before'], // 强制操作符使用一致的换行符风格 \"one-var\": [2, 'never'], // 强制函数中的变量在一起声明或分开声明 \"object-property-newline\": 1, // 强制将对象的属性放在不同的行上 \"object-curly-spacing\": [2, 'always'], // 强制在花括号中使用一致的空格 \"object-curly-newline\": [1, { // 对象属性换行 multiline: true, }], // \"no-whitespace-before-property\": 2, // 禁止属性前有空白 \"no-unneeded-ternary\": 2, // 禁止可以表达为更简单结构的三元操作符 \"semi-spacing\": 2, // 强制分号前后有空格 \"semi-style\": 2, // 分号风格 \"space-before-blocks\": [2, 'always'], // 禁止语句块之前的空格 \"space-before-function-paren\": [2, 'never'], // 禁止函数圆括号之前有一个空格 \"space-in-parens\": 2, // 禁止或强制圆括号内的空格 \"space-infix-ops\": 2, // 要求中缀操作符周围有空格 \"space-unary-ops\": 2, // 禁止在一元操作符之前或之后存在空格 \"spaced-comment\": 2, // 要求在注释前有空白 \"switch-colon-spacing\": 2, // 强制在 switch 的冒号左右有空格 \"template-tag-spacing\": 2, // 要求在模板标记和它们的字面量之间有空格 /** * ES6相关规则 */ \"arrow-parens\": [2, 'as-needed'], // 要求箭头函数的参数使用圆括号 \"arrow-body-style\": 2, // 要求箭头函数体使用大括号 \"arrow-spacing\": 2, // 要求箭头函数的箭头之前或之后有空格 \"generator-star-spacing\": 2, // 强制 generator 函数中 * 号周围有空格 \"no-class-assign\": 2, // 不允许修改类声明的变量 \"no-confusing-arrow\": 2, // 禁止在可能与比较操作符相混淆的地方使用箭头函数 \"no-const-assign\": 2, // 不允许改变用const声明的变量 \"no-dupe-class-members\": 2, // 不允许类成员中有重复的名称 \"no-duplicate-imports\": 2, // 禁止重复导入 \"no-new-symbol\": 0, // 禁止 Symbol 操作符和 new 一起使用lines-between \"no-useless-computed-key\": 2, // 禁止在对象中使用不必要的计算属性 \"no-useless-constructor\": 2, // 禁用不必要的构造函数 \"no-useless-rename\": 2, // 禁止在 import 和 export 和解构赋值时将引用重命名为相同的名字 \"no-var\": 2, // 要求使用 let 或 const 而不是 var \"object-shorthand\": 2, // 要求对象字面量简写语法 \"prefer-arrow-callback\": 2, // 要求使用箭头函数作为回调 \"prefer-const\": 1, // 建议使用const \"prefer-destructuring\": [2, { // 优先使用数组和对象解构 \"array\": false, \"object\": true }], \"prefer-rest-params\": 2, // 使用剩余参数代替 arguments \"prefer-spread\": 2, // 建议使用扩展运算符而非.apply() \"prefer-template\": 2, // 建议使用模板而非字符串连接 \"require-yield\": 2, // 禁用函数内没有yield的 generator 函数 \"rest-spread-spacing\": 2, // 强制剩余和扩展运算符及其表达式之间有空格 \"template-curly-spacing\": 2, // 强制模板字符串中空格的使用 \"sort-imports\": [0, { // import 排序 问题是要以字母排序 ignoreCase: true, ignoreMemberSort: true, memberSyntaxSortOrder: ['all', 'single', 'multiple', 'none'] }], // } }; 可以不写代码,但是不能少读书 链接文章 http://eslint.cn/docs/user-guide/getting-started https://segmentfault.com/a/1190000017461203

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023