eslint.json

// .eslintrc.json
{
	"env": {
		"browser": true,
		"node": true,
		"commonjs": true
	},
    "plugins": [
		"react"
	],
	//"parser": "babel-eslint",   // 必须指定解析器,否则错误难消
	// 0 或 'off':关闭规则。
	// 1 或 'warn':打开规则,并且作为一个警告(并不会导致检查不通过)。
	// 2 或 'error':打开规则,并且作为一个错误 (退出码为1,检查不通过)。
	"rules": {
	    // 定义对象的set存取器属性时,强制定义get  
	    "accessor-pairs": 2,  
	    // 禁止或强制在括号内使用空格
	    // 指定数组的元素之间要以空格隔开(,后面), never参数:[ 之前和 ] 之后不能带空格,always参数:[ 之前和 ] 之后必须带空格  
	    "array-bracket-spacing": [2, "never"],  
	    // 在块级作用域外访问块内定义的变量是否报错提示  
	    "block-scoped-var": 0,  
	    // if while function 后面的{必须与if在同一行,java风格。  
	    "brace-style": [2, "1tbs", { "allowSingleLine": true }],  
	    // 双峰驼命名格式  
	    "camelcase": 2,  
	    // 数组和对象键值对最后一个逗号, never参数:不能带末尾的逗号, always参数:必须带末尾的逗号,  
	    // always-multiline:多行模式必须带逗号,单行模式不能带逗号  
	    "comma-dangle": [2, "never"],  
	    // 控制逗号前后的空格  
	    "comma-spacing": [2, { "before": false, "after": true }],  
	    // 控制逗号在行尾出现还是在行首出现  
	    // http://eslint.org/docs/rules/comma-style  
	    "comma-style": [2, "last"],  
	    // 圈复杂度  
	    "complexity": [2,12],  
	    // 以方括号取对象属性时,[ 后面和 ] 前面是否需要空格, 可选参数 never, always  
	    "computed-property-spacing": [2,"never"],  
	    // 强制方法必须返回值,TypeScript强类型,不配置  
	    "consistent-return": 0,  
	    // 用于指统一在回调函数中指向this的变量名,箭头函数中的this已经可以指向外层调用者,应该没卵用了  
	    // e.g [0,"that"] 指定只能 var that = this. that不能指向其他任何值,this也不能赋值给that以外的其他值  
	    "consistent-this": 0,  
	    // 强制在子类构造函数中用super()调用父类构造函数,TypeScrip的编译器也会提示  
	    "constructor-super": 0,  
	    // if else while for do后面的代码块是否需要{ }包围,参数:  
	    //    multi  只有块中有多行语句时才需要{ }包围  
	    //    multi-line  只有块中有多行语句时才需要{ }包围, 但是块中的执行语句只有一行时,  
	    //                   块中的语句只能跟和if语句在同一行。if (foo) foo++; else doSomething();  
	    //    multi-or-nest 只有块中有多行语句时才需要{ }包围, 如果块中的执行语句只有一行,执行语句可以零另起一行也可以跟在if语句后面  
	    //    [2, "multi", "consistent"] 保持前后语句的{ }一致  
	    //    default: [2, "all"] 全都需要{ }包围  
	    "curly": [2, "all"],  
	    // switch语句强制default分支,也可添加 // no default 注释取消此次警告  
	    "default-case": 2,  
	    // 强制object.key 中 . 的位置,参数:  
	    //      property,'.'号应与属性在同一行  
	    //      object, '.' 号应与对象名在同一行  
	    "dot-location": [2, "property"],  
	    // 强制使用.号取属性  
	    //    参数: allowKeywords:true 使用保留字做属性名时,只能使用.方式取属性  
	    //                          false 使用保留字做属性名时, 只能使用[]方式取属性 e.g [2, {"allowKeywords": false}]  
	    //           allowPattern:  当属性名匹配提供的正则表达式时,允许使用[]方式取值,否则只能用.号取值 e.g [2, {"allowPattern": "^[a-z]+(_[a-z]+)+$"}]  
	    "dot-notation": [2, {"allowKeywords": true}],  
	    // 文件末尾强制换行  
	    "eol-last": 2,  
	    // 使用 === 替代 ==  
	    "eqeqeq": [2, "allow-null"],  
	    // 方法表达式是否需要命名  
	    "func-names": 0,  
	    // 方法定义风格,参数:  
	    //    declaration: 强制使用方法声明的方式,function f(){} e.g [2, "declaration"]  
	    //    expression:强制使用方法表达式的方式,var f = function() {}  e.g [2, "expression"]  
	    //    allowArrowFunctions: declaration风格中允许箭头函数。 e.g [2, "declaration", { "allowArrowFunctions": true }]  
	    "func-style": 0,  
	    "generator-star-spacing": [2, { "before": true, "after": true }],  
	    "guard-for-in": 0,
	    // 强制回调错误处理  
	    "handle-callback-err": [2, "^(err|error)$" ],
	    // 强制使用一致的缩进  
	    "indent": [2, 4, { "SwitchCase": 1 }],
	    
	    // 强制在对象字面量的键和值之间使用一致的空格
	    "key-spacing": [2, { "beforeColon": true, "afterColon": true }],
	    // keyword-spacing 强制关键字周围空格的一致性
	    // "before": true (默认) 要求在关键字之前至少有一个空格
		// "before": false 禁止在关键字之前有空格
		// "after": true (默认) 要求在关键字之后至少有一个空格
		// "after": false 禁止在关键字之后有空格
		// "overrides" 允许覆盖指定的关键字的空格风格
	    "keyword-spacing":[2,{"before": true, "after": true }],
	    "linebreak-style": 0,  
	    "lines-around-comment": 0,  
	    "max-nested-callbacks": 0, 
	    // 要求构造函数首字母大写 
	    "new-cap": [2, { "newIsCap": true, "capIsNew": true }],
	    // 要求调用无参构造函数时带括号  
	    "new-parens": 2,  
	    "newline-after-var": 0,
	    // 禁用 alert  alert、prompt 和 confirm 时,该规则将发出警告。
	    "no-alert": 2,
	    // 禁止使用 Array 构造函数  
	    "no-array-constructor": 2, 
	    // 禁用 caller 或 callee 
	    "no-caller": 2, 
	    // 不允许在 catch 语句中遮盖变量 
	    "no-catch-shadow": 2,
	    // 禁止在条件语句中出现赋值操作符  
	    "no-cond-assign": 2,
	    // 禁用 console   
	    "no-console": 2,
	    // 禁止在条件中使用常量表达式
	    "no-constant-condition": 2,
	    // 禁用 continue  
	    "no-continue": 2,
	    // 禁止在正则表达式中使用控制字符  
	    "no-control-regex": 2,
	    // 禁用 debugger  
	    "no-debugger": 2,
	    // 禁止删除变量  
	    // delete 的目的是删除对象的属性。使用 delete 操作删除一个变量可能会导致意外情况发生
	    "no-delete-var": 2, 
	    // 禁止使用看起来像除法的正则表达式  
	    // function bar() { return /=foo/; } 错误
	    // function bar() { return /\=foo/; }正确
	    "no-div-regex": 2, 
	    // 禁止在 function 定义中出现重复的参数  
	    "no-dupe-args": 2,
	    // 禁止在对象字面量中出现重复的键  
	    "no-dupe-keys": 2,  
	    // 禁止重复 case 标签
	    "no-duplicate-case": 2, 
	    // 禁止在 else 前有 return 
	    "no-else-return": 2, 
	    // 禁止空块语句 
	    "no-empty": 0, 
	    // 禁止在正则表达式中出现空字符集 
	    "no-empty-character-class": 2,
	    // 禁止与 null 进行比较
	    "no-eq-null": 2,  
	    // 禁用 eval()
	    "no-eval": 2,
	    // 禁止对 catch 子句中的异常重新赋值   
	    "no-ex-assign": 2, 
	    // 禁止扩展原生对象 
	    "no-extend-native": 2,  
	    // 禁止不必要的函数绑定 
	    "no-extra-bind": 2,
	    // 禁止不必要的布尔类型转换  
	    "no-extra-boolean-cast": 2, 
	    // 禁止冗余的括号 
	    "no-extra-parens": 2, 
	    // 禁用不必要的分号
	    "no-extra-semi": 2,
	    // 禁止 case 语句落空  
	    "no-fallthrough": 2, 
	    // 禁止浮点小数 
	    "no-floating-decimal": 2, 
	    // 禁止对 function 声明重新赋值
	    "no-func-assign": 2, 
	    // 禁用隐式的eval() 
	    "no-implied-eval": 2,
	    // 禁止使用内联注释   
	    "no-inline-comments": 2,
	    // 禁止在嵌套的语句块中出现变量或 function 声明  
	    "no-inner-declarations": [2, "functions"],  
	    // 禁止在 RegExp 构造函数中出现无效的正则表达式
	    "no-invalid-regexp": 2,
	    // 禁止不规则的空白  
	    "no-irregular-whitespace": 2,
	     // 禁用迭代器 
	    "no-iterator": 2,  
	    // 禁用与变量同名的标签
	    "no-label-var": 2, 
	    // no-labels 规则旨在消除 JavaScript 中标签的使用。当遇到标签语句时,该规则将发出警告。
	    /**
	    * 示例: 标签语句
	    outer:
		    while (true) {
		        while (true) {
		            break outer;
		        }
		    }
		*/
	    "no-labels": 2,  
	    // 禁用不必要的嵌套块
	    "no-lone-blocks": 2, 
	    // 禁止 if 语句作为唯一语句出现在 else 语句块中 
	    "no-lonely-if": 2,
	    // 禁止循环中存在函数    
	    "no-loop-func": 2, 
	    // 禁止 require 调用与普通变量声明混合使用  
	    "no-mixed-requires": 2, 
	    // 禁止使用 空格 和 tab 混合缩进 
	    "no-mixed-spaces-and-tabs": 2, 
	    // 禁止出现多个空格 
	    "no-multi-spaces": 2, 
	    // 禁止多行字符串 
	    "no-multi-str": 2,
	    // 不允许多个空行 
	    "no-multiple-empty-lines": [2, { "max": 1 }], 
	    // 现版本已经作废
	    "no-native-reassign": 2,  
	    // 替代 no-unsafe-negation
	    "no-negated-in-lhs": 2,  
	    "no-nested-ternary": 0,  
	    "no-new": 2,  
	    "no-new-func": 0,  
	    "no-new-object": 2,  
	    "no-new-require": 2,  
	    "no-new-wrappers": 2,  
	    "no-obj-calls": 2,  
	    "no-octal": 2,  
	    "no-octal-escape": 2,  
	    "no-param-reassign": 0,  
	    "no-path-concat": 0,  
	    "no-process-env": 0,  
	    "no-process-exit": 0,  
	    "no-proto": 0,  
	    "no-redeclare": 2,  
	    "no-regex-spaces": 2,  
	    "no-restricted-modules": 0,  
	    "no-return-assign": 2,  
	    "no-script-url": 0,  
	    "no-self-compare": 2,  
	    "no-sequences": 2,  
	    "no-shadow": 0,  
	    "no-shadow-restricted-names": 2,  
	    "no-spaced-func": 2,  
	    "no-sparse-arrays": 2,  
	    "no-sync": 0,  
	    "no-ternary": 0,  
	    "no-this-before-super": 2,  
	    "no-throw-literal": 2,
	    // 禁用行尾空白  
	    "no-trailing-spaces": 2,
	   	// 禁用未声明的变量
	    "no-undef": 2,  
	    "no-undef-init": 2,  
	    "no-undefined": 0,  
	    "no-underscore-dangle": 0,  
	    "no-unexpected-multiline": 2,  
	    "no-unneeded-ternary": 2,  
	    "no-unreachable": 2,  
	    "no-unused-expressions": 0, 
	    // 禁止未使用过的变量
	    "no-unused-vars": [1, { "vars": "all", "args": "none" }], 
	    // 禁止定义前使用 
	    "no-use-before-define": 2,  
	    "no-var": 0,  
	    "no-void": 0,  
	    "no-warning-comments": 0,  
	    "no-with": 2,  
	    "object-curly-spacing": 0,  
	    "object-shorthand": 0,
		// 强制函数中的变量在一起声明或分开声明 
	    "one-var": [2, { "initialized": "never" }],  
	    "operator-assignment": 0,  
	    "operator-linebreak": [2, "after", { "overrides": { "?": "before", ":": "before" } }],  
	    "padded-blocks": 0,  
	    "prefer-const": 0,  
	    "quote-props": 0,
	    // 字符串使用单引号    single、double、
	    // "double" (默认) 要求尽可能地使用双引号
		// "single" 要求尽可能地使用单引号
		// "backtick" 要求尽可能地使用反勾号
		// "avoidEscape": true 允许字符串使用单引号或双引号,只要字符串中包含了一个其它引号,否则需要转义
	    "quotes": [2, "double", "avoid-escape"],
	    // 要求必须有基数 var num = parseInt("071", 10);  // 71
	    "radix": 2,
	    // "always" (默认) 要求在语句末尾使用分号
	    // "never" 禁止在语句末尾使用分号 (除了消除以 [、(、/、+ 或 - 开始的语句的歧义)
	    // "omitLastInOneLineBlock":ture 忽略花括号在同一行(内容也就在同一行了)的语句块中的最后一个分号
	    "semi": [2, "always", {"omitLastInOneLineBlock": true}],
	    // 这个是默认选项,它强制分号之后有空格,禁止分号之前有空格。
	    "semi-spacing": [2, {"before": false, "after": true}],
	    "sort-vars": 0,
    	// 要求或禁止语句块之前的空格  
	    "space-before-blocks": [2, "always"], 
	    // 要求或禁止函数圆括号之前有一个空格
	    // always (默认) 要求在参数的 ( 前面有一个空格。
		// never 禁止在参数的 ( 前面有空格。 
	    "space-before-function-paren": [2, "never"],  
	    "space-in-parens": [2, "never"],  
        // 要求中缀操作符周围有空格
	    "space-infix-ops": 1,
	    "space-unary-ops": [2, { "words": true, "nonwords": false }],  
	    //要求或禁止在注释前有空白
	    "spaced-comment": [2, "always", { "markers": ["global", "globals", "eslint", "eslint-disable", "*package", "!"] }],  
	    // "safe" (默认) 对应下面的选项:
		// 		"global" 如果 ESLint 认为一个文件是 CommonJS 模块
		// 		"function" 如果 ESLint 认为一个文件不是 CommonJS 模块
		// "global" 要求在全局作用域下有一个严格模式指令(不允许任何其它严格模式指令)
		// "function" 要求在函数声明或表达式开始位置有一个严格模式指令(不允许任何其它严格模式指令)
		// "never" 禁用严格模式指令
	    "strict": [2, "safe"],
	    "use-isnan": 2,  
	    "valid-jsdoc": 0,  
	    "valid-typeof": 2,  
	    "vars-on-top": 0,  
	    "wrap-iife": [2, "any"],  
	    "wrap-regex": 0,  
	    "yoda": [2, "never"] 
	}
}  

// package.json
{
  "name": "xiaomickts",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "node-sass scss -w -o css"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-eslint": "^8.2.2",
    "eslint": "^4.19.1",
    "eslint-plugin-react": "^7.7.0",
    "node-sass": "^4.8.3"
  }
}

 

转载于:https://my.oschina.net/u/1773772/blog/1591089

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值