javascript ESLint_refer
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript ESLint_refer相关的知识,希望对你有一定的参考价值。
module.exports = {
env: {
browser: true,
commonjs: true,
es6: true,
node: true
},
extends: ['airbnb-base'],
plugins: ['import'],
parser: 'babel-eslint',
parserOptions: {
ecmaFeatures: {
experimentalObjectRestSpread: true,
jsx: true
},
sourceType: 'module',
},
// 指定解析器
rules: {
// 强制 getter 和 setter 在对象中成对出现
// 默认状态是开启对setWithoutGet的监控,关闭对getWithoutSet的监控
'accessor-pairs': 'error',
// ✘ : 关闭要求箭头函数体使用大括号的监控
// 严格执行会降低可读性
// 比如:export default context => app.preFetch(context).then(() => app)
'arrow-body-style': ['off', 'as-needed', { 'requireReturnForObjectLiteral': true }],
// ✘ : 关闭对骆驼拼写法的监控
// 因为我们要和后端接口保持一致
'camelcase': 'off',
// ✘ : 关闭这一规则
// JSON 或 Object 最后可以有逗号也可以没有逗号
'comma-dangle': 'off',
// ✘ : 关闭对于最后行为空行的监控
'eol-last': 'off',
// ✘ : 关闭这一规则
// 有些比如说setTimeout一定要为function取名字还挺烦的
'func-names': 'off',
// ✘ : 允许使用位操作
// 因为 node 里面底层处理比如文件操作之类用位操作还是方便
// 另外我们一般用 | 0 来取整
'no-bitwise': 'off',
// 要求关键字前后都添加空格,但是overrides数组中的关键字后面不添加空格
'keyword-spacing': ['error', {
'overrides': {
'if': { 'after': false },
'for': { 'after': false },
'while': { 'after': false },
'function': { 'after': false },
},
}],
// 禁止console,但是允许console.warn() 和 console.error()
'no-console': ['warn', { allow: ['warn', 'error'] }],
// 禁止在条件中使用常量表达式
// 允许在循环中使用常量表达式
'no-constant-condition': ['warn', { 'checkLoops': false }],
// ✘ : 关闭对于禁用continue的监控
'no-continue': 'error',
// 禁止在全局范围使用变量和函数声明
'no-implicit-globals': 'error',
// 禁止 this 关键字在类或类对象之外出现
'no-invalid-this': 'off',
// 禁止混合操作符,同组的需要添加圆括号
// 这个其实有点不太实用
'no-mixed-operators': ['off', {
groups: [
['===', '!==', '>', '>=', '<', '<='],
['&&', '||'],
['in', 'instanceof'],
],
allowSamePrecedence: false,
}],
// ✘ : 关闭对于禁止对参数进行赋值的监控
// 因为我们其实常常需要对参数进行修改操作
'no-param-reassign': ['off', { 'props': false }],
// ✘ : 关闭对于禁用自增自减的监控
'no-plusplus': 'off',
// ✘ : 关闭对于禁用下划线的监控
'no-underscore-dangle': ['off', { allowAfterThis: false }],
// 在声明之前不可以使用变量和类,但是函数除外
'no-use-before-define': ['error', { functions: false, classes: true, variables: true }],
// ✘ : 关闭对强制行的最大长度的监控
// 传参很多就很方啊,尤其加上默认参数的时候
'max-len': 'off',
// 禁止一个文件中在忽略空行和注释之后行数超过300行
'max-lines': ['error', {
max: 300,
skipBlankLines: true,
skipComments: true
}],
// 一个函数的最大参数数量不可以超过5个
'max-params': ['error', 5],
'max-statements': ['off', 10],
// ✘ : 关闭这一规则
// 因为 ES6 之前 JS 没有块级作用域,存在变量提升,故采用此规则
// 把变量定义在一起可以减少歧义
'one-var': 'off',
// 强制在花括号中不使用空格
'object-curly-spacing': ['error', 'never'],
// 强制将对象的属性放在不同的行上
// 禁止所有的 key 和 value 在同一行
'object-property-newline': ['error', {
allowMultiplePropertiesPerLine: true,
}],
// 要求把换行符放在操作符前面
'operator-linebreak': ['error', 'before'],
// 在promise函数的reject()中,要么抛出Error要么为空
'prefer-promise-reject-errors': ['error', { allowEmptyReject: true }],
// 强制 async 方法使用 await
// 否则可能会导致 babel 把不必要的 async 编译成 generator
'require-await': 'error',
'require-yield': 'error',
// 禁用分号
'semi': ['error', 'never'],
// import/禁止使用dependency外定义的文件
'import/no-extraneous-dependencies': 0,
'import/first': 0,
'import/no-unresolved': 0,
'import/newline-after-import': 0,
'import/extensions': 0,
'indent': ['error', 4],
'linebreak-style': ['error', 'unix'],
'quotes': ['error', 'single'],
}
}
以上是关于javascript ESLint_refer的主要内容,如果未能解决你的问题,请参考以下文章
javascript JavaScript isset()等效: - JavaScript
JavaScript 使用JavaScript更改CSS(JavaScript)