使⽤eslint--ext.js,.vuesrc修复.eslintrc.js设置// .eslintrc.js
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
jquery: true
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// extends: ['plugin:vue/essential', 'eslint:recommended']
// plugins: [
// 'html'
// ],
// add your custom rules here
//it is base on github/vuejs/eslint-config-vue
rules: {
'vue/max-attributes-per-line': [2, {
singleline: 10,
multiline: {
max: 1,
allowFirstLine: false
}
}],
'vue/singleline-html-element-content-newline': 'off',
'vue/multiline-html-element-content-newline':'off',
'vue/name-property-casing': ['error', 'PascalCase'],
'vue/no-v-html': 'off',
'accessor-pairs': 2,
'arrow-spacing': [2, {
before: true,
after: true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
allowSingleLine: true
}],
camelcase: [0, {
properties: 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
before: false,
after: true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
curly: [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
eqeqeq: ['error', 'always', {null: 'ignore'}],
'generator-star-spacing': [2, {
before: true,
after: true
}],
'handle-callback-err': [2, '^(err|error)$'],
indent: [2, 2, {
SwitchCase: 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
beforeColon: false,
afterColon: true
}],
'keyword-spacing': [2, {
before: true,
after: true
}],
'new-cap': [2, {
newIsCap: true,
capIsNew: false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],ajax原理与应用
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'], 'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
allowLoop: false,
allowSwitch: false
}],
'no-lone-blocks': 2,
'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-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
windows7正版下载'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'], 'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
/**
* 参考⽂档
* 【eslint英⽂⽂档】/docs/user-guide/configuring
* 【eslint中⽂⽂档】eslint/docs/rules/
*/
/**
* eslint有三种使⽤⽅式
* 【1】js代码中通过注释的⽅式使⽤
* 【2】通过webpack的eslintConfig字段设置,eslint会⾃动搜索项⽬的package.json⽂件中的配置
* 【3】通过配置⽂件的⽅式使⽤,配置⽂件有多种⽂件⽅式,如JavaScript、JSON 或者 YAML等
*/
/
**
* ⽂件忽略
* 【】让eslint跳过特定⽂件的检测
* 【】通过当前⼯作⽬录下「.eslintignore」⽂件进⾏设置
* 其使⽤的是Glob路径书写⽅式,与「.gitignore」的使⽤⽅法相同
* 【】也可以在 package.json ⽂件中,通过 eslintIgnore 参数进⾏设置
*/
/**
* ⽂件内局部设置
* 【】eslint可以具体⽂件中设置特定代码的规则,常⽤于跳过某条语句的检测。
* 【】注销全部规则,在代码前新建⼀⾏,添加注销 /* eslint-disable *\/ 。如果没有恢复设置的语句,则下列全部代码都会跳过检测。
* 【】恢复eslint,在代码前新建⼀⾏,添加注销 /* eslint-enable *\/
* 【】指定忽略的规则,/* eslint-disable no-alert, no-console *\/
* 【】在特定⾏禁⽤,// eslint-disable-line
* 【】在下⼀⾏禁⽤,// eslint-disable-next-line
*/
autoupdate怎么删除/**
* 根⽬录标识
* eslint/docs/user-guide/configuring#using-configuration-files
* eslint/docs/user-guide/configuring#configuration-cascading-and-hierarchy
* 【】标识当前配置⽂件为最底层的⽂件,⽆需往更上⼀级的⽂件⽬录中进⾏搜索
* 【】默认eslint的配置⽂件搜索⽅式是,从⽬标⽂件夹进⾏搜索,遍历内部每⼀个⽂件夹,到配置⽂件并层叠使⽤。再跳出本项⽬,往祖先⽂件夹进⾏遍历
* 【】注意「~/.eslintrc」的意义,「~」是指linux上的家⽬录,「~/.eslintrc」是指家⽬录下的eslint配置⽂件,⽤于私⼈开发者,⽤于整个电脑全局约束的。这个配置通过本配置 * 【】eslint的⽣效规则是就近使⽤,越近的配置项优先级越⾼,覆盖其他配置项。如⼀个项⽬中,可以在不同⽂件夹中都添加配置⽂件,这些规则将重叠组合⽣效
*/
root: true, // 标识当前配置⽂件为eslint的根配置⽂件,让其停⽌在⽗级⽬录中继续寻。
/**
* 解析器
* eslint/docs/user-guide/configuring#specifying-parser
* 【】ESLint 默认使⽤Espree作为其解析器
* 【】解析器必须是本地安装的⼀个 npm 模块。即必须按照在本地的node_module中
* 【】解析器是⽤于解析js代码的,怎么去理解每⼀个表达式,有点C++中编译器的概念,会对js进⾏⼀些语法分析,语义分析什么的,才能判断语句符不符合规范。⽽不是通过 * 【】解析器有很多,但兼容eslint的解析器有以下⼏个小苏打和白醋一起用有什么效果
* Espree:默认解析器,⼀个从Esprima中分离出来的解析器,做了⼀些优化
* Esprima:js标准解析器
* Babel-ESLint:⼀个对Babel解析器的包装,babel本⾝也是js解析器的⼀种(不然怎么能转化为兼容性代码呢?⾸先需要进⾏js解析,才能转化)。如果我们的代码需要经过 * typescript-eslint-parser(实验) - ⼀个把 TypeScript 转换为 ESTree 兼容格式的解析器
* 【】但是通常在vue项⽬中,并不会写在 parser 字段中,⽽是写在 parserOptions -> parser。具体原因在 parserOptions ⼀栏中介绍
*/
// parser: 'babel-eslint',
/**
* 解析器配置项
* eslint/docs/user-guide/configuring#specifying-parser-options
* 【】这⾥设置的配置项将会传递到解析器中,被解析器获取到,进⾏⼀定的处理。具体被利⽤到,要看解析器的源码有没有对其进⾏利⽤。这⾥仅仅做了参数定义,做了规定, * 【】配置项⽬有:
* "sourceType": "module", // 指定JS代码来源的类型,script(script标签引⼊?) | module(es6的module模块),默认为script。为什么vue的会使⽤script呢?因为vue是通过b * "ecmaVersion": 6, // ⽀持的ES语法版本,默认为5。注意只是语法,不包括ES的全局变量。全局变量需要在env选项中进⾏定义
* "ecmaFeatures": { // Features是特征的意思,这⾥⽤于指定要使⽤其他那些语⾔对象
"experimentalObjectRestSpread": true, //启⽤对对象的扩展
"jsx": true, //启⽤jsx语法
"globalReturn":true, //允许return在全局使⽤
"impliedStrict":true //启⽤严格校验模式
}
*/
parserOptions: {
/**
* 这⾥出现 parser 的原因
* 【】⾸先明确⼀点,官⽅说明中,parserOptions的配置参数是不包括 parser 的
* 【】这⾥的写 parser 是 eslint-plugin-vue 的要求,是 eslint-plugin-vue 的⾃定义参数
* 【】根据官⽅⽂档,eslint-plugin-vue 插件依赖「vue-eslint-parser」解析器。「vue-eslint-parser」解析器,只解析 .vue 中html部分的内容,不会检测<script>;中的JS内 * 【】由于解析器只有⼀个,⽤了「vue-eslint-parser」就不能⽤「babel-eslint」。所以「vue-eslint-parser」的做法是,在解析器选项中,再传⼊⼀个解析器选项parser。从⽽ * 【】所以这⾥出现了 parser
* 【】相关⽂档地址,vuejs.github.io/eslint-plugin-vue/user-guide/#usage
*/
parser: 'babel-eslint',
},
/**
* 运⾏环境
* eslint/docs/user-guide/configuring#specifying-environments
* 【】⼀个环境定义了⼀组预定义的全局变量
* 【】获得了特定环境的全局定义,就不会认为是开发定义的,跳过对其的定义检测。否则会被认为改变量未定义
* 【】常见的运⾏环境有以下这些,更多的可查看官⽹
* browser - 浏览器环境中的全局变量。
* node - Node.js 全局变量和 Node.js 作⽤域。
* es6 - 启⽤除了 modules 以外的所有 ECMAScript 6 特性(该选项会⾃动设置 ecmaVersion 解析器选项为 6)。
* amd - 将 require() 和 define() 定义为像 amd ⼀样的全局变量。
* commonjs - CommonJS 全局变量和 CommonJS 作⽤域 (⽤于 Browserify/WebPack 打包的只在浏览器中运⾏的代码)。
* jquery - jQuery 全局变量。
* mongo - MongoDB 全局变量。
* worker - Web Workers 全局变量。
* serviceworker - Service Worker 全局变量。
*/
env: {jquery下载的文件怎么使用
browser: true, // 浏览器环境
},
/**
* 全局变量
* eslint/docs/user-guide/configuring#specifying-globals
* 【】定义额外的全局,开发者⾃定义的全局变量,让其跳过no-undef 规则
* 【】key值就是额外添加的全局变量
* 【】value值⽤于标识该变量能否被重写,类似于const的作⽤。true为允许变量被重写
* 【】注意:要启⽤no-global-assign规则来禁⽌对只读的全局变量进⾏修改。
*/
globals: {
// gTool: true, // 例如定义gTool这个全局变量,且这个变量可以被重写
},
/**
* 插件
* eslint/docs/user-guide/configuring#configuring-plugins
* 【】插件同样需要在node_module中下载
* 【】注意插件名忽略了「eslint-plugin-」前缀,所以在package.json中,对应的项⽬名是「eslint-plugin-vue」
* 【】插件的作⽤类似于解析器,⽤以扩展解析器的功能,⽤于检测⾮常规的js代码。也可能会新增⼀些特定的规则。
* 【】如 eslint-plugin-vue,是为了帮助我们检测.vue⽂件中 <template> 和 <script> 中的js代码results in physics 影响因子
*/
plugins: ['vue'],
/**
* 规则继承
* eslint/docs/user-guide/configuring#extending-configuration-files
*【】可继承的⽅式有以下⼏种
*【】eslint内置推荐规则,就只有⼀个,即「eslint:recommended」
*【】可共享的配置,是⼀个 npm 包,它输出⼀个配置对象。即通过npm安装到node_module中
* 可共享的配置可以省略包名的前缀 eslint-config-,即实际设置安装的包名是 eslint-config-airbnb-base
*【】从插件中获取的规则,书写规则为「plugin:插件包名/配置名」,其中插件报名也是可以忽略「eslint-plugin-」前缀。如'plugin:vue/essential'
*【】从配置⽂件中继承,即继承另外的⼀个配置⽂件,如'./node_modules/coding-standard/eslintDefaults.js'
*/
extends: [
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论