aha-micro-cli
Version:
aha微前端运行脚手架
179 lines (176 loc) • 9.38 kB
JavaScript
module.exports = {
root: true,
extends: ['eslint:recommended'],
env: {
es6: true, // 启用 ES6 语法支持以及新的 ES6 全局变量或类型
node: true,
browser: true, // 浏览器全局变量
},
parser: 'babel-eslint',
/**
* 每个规则有【3】个错误级别。
* off或0: 关闭该规则;
* warn或1: 开启规则,使用警告级别的错误,不会导致程序退出;
* error或2: 开启规则,使用错误级别的错误,当被触发的时候,程序会退出。
*/
rules: {
'accessor-pairs': 1, // getter与setter必须同时存在
'arrow-spacing': [1, { // 箭头前后加空格
'before': true,
'after': true
}],
'block-spacing': [1, 'always'], // 标记块前后需加空格
'brace-style': [1, '1tbs', { // 函数()与{}不许换行
'allowSingleLine': true
}],
'comma-dangle': [1, 'only-multiline'], // 允许最后一个属性无逗号
'comma-spacing': [1, { // 在逗号前后不允许有空格
'before': false,
'after': true
}],
'curly': [1, 'multi-line'], // 花括号行内可省略,块级必须加花括号
'dot-location': [1, 'property'], // 在点之前和之后强制换行
'eol-last': 1, // 在文件末尾要求或禁止换行
'eqeqeq': [1, 'allow-null'], // 使用全等
'indent': [1, 2, { // 缩进规则,2空格,switchcase后 1个空格
'SwitchCase': 1
}],
'key-spacing': [1, { // 键间距
'beforeColon': false, // 不允许在对象文字中的键和冒号之间使用空格,a: 1 而不是 a : 1
'afterColon': true // 键值后需要空格a: 1, 而不是a:1
}],
'keyword-spacing': [1, { // 关键字前后都要空格 if() {} else {}
'before': true,
'after': true
}],
'new-parens': 1, // 不带参数(新括号)调用构造函数时需要括号
'operator-linebreak': [1, 'after', { // 对操作员实施一致的换行符样式
'overrides': {
'?': 'before', // 三元运算换行时,第一行为条件语句,第二行以?开头,第三行以:开头
':': 'before'
}
}],
'quotes': [1, 'single', { // 强制使用引号,双引号或单引号(引号)的一致使用
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [1, 'never'], // 不适用分号
'semi-spacing': [1, { // 在分号之前和之后加强间距
'before': false,
'after': true
}],
'object-curly-spacing': [1, // 大括号间距, 两边必有空格
'always',
{
'objectsInObjects': false,
'arraysInObjects': true
}],
'spaced-line-comment': [0, 'always'], // 注释后面需加一个空格
'space-before-blocks': [1, 'always'], // 要求或禁止在块前加空格
'space-before-function-paren': [1, 'never'], // 函数括号前需要或不允许空格,
'space-in-parens': [1, 'never'], // 禁止或在括号内使用空格,
'space-infix-ops': 1, // 要求在中缀运算符之间加空格
'space-unary-ops': [1, { // 一元运算符之前或之后需要空格或不允许空格
'words': true,
'nonwords': false
}],
'spaced-comment': [1, 'always', { // 要求或不允许以空格(制表符或制表符)开头的注释
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',', ' ']
}],
'template-curly-spacing': [1, 'always'], // 在模板字符串中强制使用间距
'use-isnan': 2, // isNaN()检查时需要调用NaN
'valid-typeof': 2, // 强制比较typeof表达式与有效字符串
'wrap-iife': [1, 'any'], // 要求将IIFE包裹起来
'yield-star-spacing': [1, 'both'], // 强制间距围绕*在yield*表达式
'yoda': [1, 'never'], // 要求或禁止Yoda条件
'prefer-const': 1, // 不改变的变量建议使用const
'array-bracket-newline': [1, 'consistent'], // 要求数组开始结束符格式一致
'array-bracket-spacing': [1, 'never'], // 禁止在方括号内两侧加空格
'array-callback-return': 1, // 回调函数必须写return
'arrow-body-style': [1, 'as-needed', { // 箭头函数简略写法
'requireReturnForObjectLiteral': true
}],
'computed-property-spacing': [1, 'always'], // 计算属性括号内需要一个或多个空格
'default-case': 0, // 要求switch语句必须有default
'for-direction': 1, // 禁止死循环
'function-paren-newline': 1, // 函数圆括号内,除了函数,否则不允许换行
'getter-return': 1, // get必须有返回
'global-require': 0, // 防止require同步加载挂掉问题,必须在头部使用
'implicit-arrow-linebreak': 1, // 在箭头函数体之前不允许换行
'lines-between-class-members': 1, // class内函数需要空行
'newline-after-var': 1, // 声明后必须换行
'func-call-spacing': [1, 'never'], // 禁止函数名称和调用它的左括号之间的空格, function a() {} ,a与括号之间无空格
'multiline-ternary': [1, 'always-multiline'], // 如果表达式跨越多行,则在三元表达式的操作数之间强制执行换行符
'one-var': [1, { // 强制变量在函数中一起声明或一起声明
'initialized': 'never'
}],
'sort-imports': [0, { // import顺序
'memberSyntaxSortOrder': ['none', 'all', 'multiple', 'single'],
'ignoreCase': true
}],
'no-unused-vars': 1, // 禁止未使用变量
'no-console': 0, // 警告console
'no-debugger': 0, // 禁止使用debugger
'no-array-constructor': 1, // 禁止使用Array构造函数,统一使用[]
'no-class-assign': 1, // 禁止修改类声明的变量
'no-cond-assign': 1, // 在条件语句中禁止赋值运算符
'no-const-assign': 2, // 禁止修改使用const声明的变量
'no-delete-var': 2, // 禁止删除变量
'no-dupe-args': 2, // 禁止在function定义中使用重复的参数
'no-dupe-class-members': 2, // 禁止使用重复名称
'no-dupe-keys': 2, // 禁止在对象文字中使用重复键
'no-duplicate-case': 2, // 禁止重复case
'no-empty-character-class': 1, // 禁止在正则表达式中使用空字符类,用转义字符代替
'no-empty-pattern': 1, // 禁止使用空的销毁模式
'no-extra-bind': 1, // 禁止不必要的功能绑定
'no-extra-boolean-cast': 1, // 禁止不必要的布尔类型转换
'no-extra-parens': [1, 'functions'], // 禁止不必要的括号
'no-fallthrough': 1, // 禁止案例陈述失败
'no-floating-decimal': 1, // 禁止浮动小数
'no-func-assign': 2, // 禁止重新分配function声明
'no-irregular-whitespace': 1, // 禁止不规则空格
'no-label-var': 2, // 禁止使用标签作为变量名
'no-labels': [2, { // break并continue禁止多重循环
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2, // 禁止不必要的嵌套块
'no-mixed-spaces-and-tabs': 1, // 不允许同时使用缩进的空格和制表符进行缩进
'no-multi-spaces': 1, // 禁止多个空格
'no-multi-str': 2, // 禁止多行字符串, es6语法(``)可以
'no-multiple-empty-lines': [1, { // 最多一行空行
'max': 1
}],
'no-regex-spaces': 1, // 禁止在正则表达式文字中使用多个空格
'no-return-assign': [2, 'except-parens'], // 禁止在return语句中进行赋值
'no-self-compare': 1, // 禁止自我比较 a === a
'no-sequences': 2, // 禁止使用逗号运算符
'no-shadow-restricted-names': 2, // 禁止对一些关键字或者保留字进行赋值操作,比如NaN、Infinity、undefined、eval、arguments等
'no-sparse-arrays': 1, // 禁止稀疏数组
'no-throw-literal': 1, // 限制可以作为异常抛出的内容
'no-this-before-super': 1, // super()执行后调用this
'no-trailing-spaces': 1, // 在行尾禁止尾随空格
'no-undef': 0, // 禁止未声明的变量
'no-undef-init': 0, // 禁止初始化为未定义
'no-unexpected-multiline': 2, // 禁止混淆多行表达式
'no-unmodified-loop-condition': 2, // 禁止未经修改的循环条件
'no-unneeded-ternary': [1, { // 存在更简单的选择时禁止三元运算符
'defaultAssignment': false
}],
'no-unsafe-finally': 2, // 禁止以finally块为单位的控制流语句
'no-useless-call': 1, // 禁止不必要的.call()和.apply()
'no-useless-computed-key': 1, // 禁止在对象上使用不必要的计算属性键
'no-useless-constructor': 1, // 禁止不必要的构造函数
'no-useless-concat': 1, // 禁止不必要的连接符
'no-whitespace-before-property': 1, // 禁止在属性前使用空格
'no-with': 2, // 禁止with
'no-var': 1, // 禁止使用var
'no-alert': 1, // 禁止使用alert
'no-bitwise': 1, // 禁止使用按位运算符
'no-duplicate-imports': 1, // import同一模块需在同行编写
'no-empty-function': 0, // 允许空函数
'no-negated-condition': 0, // 禁止无效的反向判断
'no-return-await': 0, // async函数中禁止return await
'no-undefined': 0 // 禁止使用undefined,用null替代
}
}