AlloyTeamフロントエンドjs仕様に従って構成されたeslintrc
38865 ワード
先日テンセントAlloy Teamチームのjs規範に基づいて、eslintrcを配置し、完成度90%+を設定しました.構成はjs方式で導入される.注意:ここでは3つのeslintプラグインを参照しています.インストールを忘れないでください.
何か分からないことがあったら、私にコメントしたり、eslintドキュメントを見たりしてください.ここには中国語のドキュメントがあります.https://cn.eslint.org/AlloyTeam仕様住所:http://alloyteam.github.io/CodeGuide/
module.exports = {
env: { //
browser: true,
jquery: true
},
'extends': [
'eslint:recommended'
],
plugins: [
'html',
'require-jsdoc-except',
'dollar-sign'
],
rules: {
/*
*
*/
/* */
indent: [1, 4, { // 4 switch-case case
SwitchCase: 1
}],
/* */
semi: [1, 'always'], //
'semi-spacing': [1, { // ,
before: false,
after: true
}],
'semi-style': 1, //
/* */
'comma-dangle': [1, 'never'], //
'comma-spacing': [1, { // ,
before: false,
after: true
}],
/* */
'key-spacing': [1, { //
beforeColon: false,
afterColon: true
}],
'no-multi-spaces': 1, //
'no-trailing-spaces': 1, //
'no-whitespace-before-property': 1, //
'space-before-blocks': [1, 'always'], //
'space-before-function-paren': [1, 'never'], //
'space-in-parens': 1, //
'space-infix-ops': 1, //
'space-unary-ops': [1, { //
words: true, // new、delete、typeof、void...
nonwords: false // -、+、--、++、!、!!...
}],
'spaced-comment': [1, 'always', { // // /*
line: {
exceptions: ['-', '+'],
markers: ['/']
},
block: {
exceptions: ['*'],
markers: ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!'],
balanced: true
}
}],
'array-bracket-spacing': 1, // '[' ']'
'block-spacing': [1, 'always'], // token , token ,
'computed-property-spacing': [1, 'never'], //
'func-call-spacing': 1, //
'keyword-spacing': [1, { //
before: false,
after: true,
overrides: {
'else': {
before: true
},
'while': {
before: true
},
'catch': {
before: true
},
'finally': {
before: true
}
}
}],
'object-curly-spacing': [1, 'never'], // '{' '}'
'switch-colon-spacing': 1, // switch , switch
/* */
'eol-last': [1, 'always'], //
'lines-around-comment': [1, { //
beforeBlockComment: true,
beforeLineComment: true,
allowBlockStart: true,
allowObjectStart: true,
allowArrayStart: true,
allowClassStart: true
}],
'lines-between-class-members': 1, //
'no-multiple-empty-lines': [1, { //
max: 2
}],
'padding-line-between-statements': [1, { //
blankLine: 'always',
prev: 'var',
next: '*'
}, { // " " {}, if (a) {}, while (a) {}
blankLine: 'always',
prev: 'block-like',
next: '*'
}],
/* */
'one-var-declaration-per-line': 1, //
'operator-linebreak': [1, 'after'], //
'comma-style': 1, //
'brace-style': [1, '1tbs'], // one true brace style ,
/* */
// 'multiline-comment-style': 1, // 。 , *
'require-jsdoc-except/require-jsdoc': [1, { // jsdoc
require: {
FunctionDeclaration: true,
MethodDefinition: true,
ClassDeclaration: true,
ArrowFunctionExpression: true,
FunctionExpression: true
},
ignore: ['controller', 'link', 'success', 'error']
}],
/* */
quotes: [1, 'single'], // js
/* */
camelcase: [1, { // ( )
properties: 'never'
}],
'new-cap': 1, //
'id-blacklist': [1, 'break', 'case', 'catch', 'continue', 'default', 'delete', 'do', 'else', 'finally', 'for', 'function', 'if', 'in', 'instanceof', 'new', 'return', 'switch', 'this', 'throw', 'try', 'typeof', 'var', 'void', 'while', 'with', 'abstract', 'boolean', 'byte', 'char', 'class', 'const', 'debugger', 'double', 'enum', 'export', 'extends', 'final', 'float', 'goto', 'implements', 'import', 'int', 'interface', 'long', 'native', 'package', 'private', 'protected', 'public', 'short', 'static', 'super', 'synchronized', 'throws', 'transient', 'volatile'], //
'dollar-sign/dollar-sign': [2, 'ignoreProperties'], // jquery '$'
/* */
// 'vars-on-top': 1, //
'one-var': [1, 'consecutive'], // ,
/* */
'wrap-iife': [1, 'inside'], //
'func-names': [1, 'never'], // inline function
/* 、 */
'quote-props': [1, 'as-needed', { // ,
keywords: true,
unnecessary: true,
numbers: true
}],
'object-curly-newline': [1, { //
ObjectExpression: {
minProperties: 1
}
}],
'object-property-newline': 1, //
/* */
curly: [1, 'all'], //
/* jshint */
eqeqeq: 1, // === !==
'no-use-before-define': [1, { //
functions: false,
classes: true,
variables: true
}],
'no-new': 1, // ,
'no-extra-parens': 1, //
'no-unused-vars': 0, //
'no-undef': 0, //
'no-console': 0, // cosole
'no-extend-native': 0, //
'no-debugger': 1, // debugger
'no-loop-func': 1, //
'no-array-constructor': 1, // Array ,
'no-new-object': 1, // Object
'no-new-func': 1, // Function
'no-new-wrappers': 1, // String,Number Boolean new
/* */
'linebreak-style': 0, // 'LF'
'consistent-this': [1, '_this', 'that', 'self'], // this '_this', 'that', 'self'
'no-empty-function': 1 //
}
};
何か分からないことがあったら、私にコメントしたり、eslintドキュメントを見たりしてください.ここには中国語のドキュメントがあります.https://cn.eslint.org/AlloyTeam仕様住所:http://alloyteam.github.io/CodeGuide/