packages/eslint-config-breezr/rules/es.js (62 lines of code) (raw):
// es5/6 通用
module.exports = {
/*
* 跟集团的基本一致,除了对 parameters 和 arguments 这里由 1 改成了 2
*/
indent: ['error', 2, {
SwitchCase: 1,
VariableDeclarator: 1,
outerIIFEBody: 1,
// MemberExpression: null,
FunctionDeclaration: {
parameters: 2,
body: 1
},
FunctionExpression: {
parameters: 2,
body: 1
},
CallExpression: {
arguments: 2
},
ArrayExpression: 1,
ObjectExpression: 1,
ImportDeclaration: 1,
flatTernaryExpressions: false,
// list derived from https://github.com/benjamn/ast-types/blob/master/def/jsx.ts
ignoredNodes: [
'JSXElement',
'JSXElement > *',
'JSXAttribute',
'JSXIdentifier',
'JSXNamespacedName',
'JSXMemberExpression',
'JSXSpreadAttribute',
'JSXExpressionContainer',
'JSXOpeningElement',
'JSXClosingElement',
'JSXText',
'JSXEmptyExpression',
'JSXSpreadChild'
],
ignoreComments: false
}],
/*
* eslint-config-ali 用的是 multi-line,且说「多行语句必须用大括号包裹,单行语句推荐用大括号包裹」
* 但这会导致不一致,且容易在增加代码的时候出错
*/
curly: ['error', 'all'],
/*
* 这条规则其实可以提高代码的可理解度
* eslint-config-ali 把它关了
* https://eslint.org/docs/rules/no-else-return
*/
'no-else-return': ['warn', {
allowElseIf: false
}],
/*
* eslint-config-ali 把 props 设成了 true,然后加了 ignorePropertyModificationsFor 配置,
* 然而更合理的 ignorePropertyModificationsFor 应该由应用层级来设置
*/
'no-param-reassign': ['warn', {
props: false
}],
/*
* 忽略空行和注释中的尾部空白
*/
'no-trailing-spaces': ['error', {
skipBlankLines: true,
ignoreComments: true
}],
/*
* eslint-config-ali 设置了 off,合理的空行 padding 对阅读理解很有帮助
*/
'padding-line-between-statements': ['error', {
blankLine: 'always',
prev: ['const', 'let', 'var', 'if', 'for', 'while', 'switch', 'try'],
next: '*'
}, {
blankLine: 'any',
prev: ['const', 'let', 'var'],
next: ['const', 'let', 'var']
}, {
blankLine: 'always',
prev: '*',
next: ['return', 'throw', 'break', 'continue', 'if', 'for', 'while', 'switch', 'try']
}]
};