eslint 和 editorconfig 代码规范

eslint 就是 jslint 发展来的 ,约束代码风格的。

editorconfig 是编辑器规范,多套编辑器 可以是使用同一套 config的规则;

首先 安装eslint ;cnpm i -D eslint

新建一个 文件 以 .eslintrc 。就是eslint的配置文件

{
  "extends": "standard"
}

意思是 使用starndard这个规则 ,这个 适用于 一般的js ,比较宽泛。

 

 

然后在client文件夹下面 ,设置 .eslintrc 文件 主要是针对jsx的语法设置规范;

{
  "parser": "babel-eslint",
  "env":{
    "browser": true,
    "es6": true,
    "node":true
  },
  "parserOptions": {
    "ecmaVersion":6,
    "sourceType": "module"
  },
  "extends": "airbnb",
  "rules": {
    "semi":[0]
  }
}

这段配置的意思是

parser 是代码用babel-eslint 去 解析;

env 是环境 当前环境支持 浏览器 node 和es6 环境 ;

parserOptions 解析器的配置是es6 ,和使用编码的是模块化的模式;

extend 是美国airbnb公司的 规范,此规范 对于react有一套非常不错的规范;

rules 是自己配置的规则和 extend规则 补充; 可以修改 ;当前的semi是指分号规范是否应用  0,不应用 ,1,警告,2 ,错误

安装 这几个包 

babel-eslint ;cnpm i -D babel-eslint

standard;cnpm i -D eslint-config-standard

airbnb ; cnpm i -D eslint-config-airbnb

eslint-loader  ;cnpm i -D eslint-loader
 

还有以上这几个工具的依赖包;

cnpm i -D  

eslint-plugin-import

 eslint-plugin-node

eslint-plugin-promise

eslint-plugin-react

eslint-plugin-standard

eslint-plugin-jsx-a11y ( 此处是数字11 不是字母ll),

然后在 客户端 和服务端的 webpack config配置文件里去修改 modul.rules.的配置;

 // 此配置是js/jsx应用 eslint-loader 的规则 在 处理其他的规则之前(enforce:"pre"),除了 node_module模块;
            {   enforce:"pre",
                test:/.(js|jsx)$/,
                loader: "eslint-loader",
                exclude:[path.resolve(__dirname,"../node_modules")]

            },


 然后 npm run dev: 

会发现 报了很多的错

现在来做一些 编辑器的editorconfig 

在主目录下新建 .editorconfig 文件 选择 text格式

root = true


[*]

charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

这个配置的意思是

root=true    这是 项目的根目录

[*]    所有的 文件都应用以下规则

charset = utf-8     编码格式是utf-8

indent_style = space  缩进格式是空格

indent_size = 2 每次缩进两个空格

end_of_line = lf  每行最后 mac 以 lf 结尾  win以 crlf  结尾 这边采用 lf结尾 

insert_final_newline = true  如果编辑到底部没有空余位置 则增加空行 

trim_trailing_whitespace =true  每行的编辑完成到达下一行的时候 。 如果上一行末尾有多余空格则去掉  

然后保存就完成了编辑器的规范 ;

webstorm 自带插件; vscode 和sublime的是需要安装插件的  

 

 

然后修改eslint 较验的错误

例如 

 1:19  error  Strings must use singlequote                               quotes

我们假如认为这条规则不适合  那么的话 我们可以在 eslint的规则里设置  quotes : [0] , 规避掉这条规则;

我们也可以在找到 这行代码 的位置在后面书写 eslint的 容错 ; // eslint-disable-line ,这个错误就会消失

然后我们 就根据规则让我们的代码 更加规范 

 

 

 

我们如果使用 git来管理代码 那么在eslint 还有错误时 就不能commit 

我们这样做

 在项目下  敲  git init ;那么这个项目就 作为git 仓库管理了 ;

再给git 的init 加个 hook ,这里需要借助于  一个husky的工具  cnmp i -D husky 

在package.json里添加一个 命令行 precommit  ,就是husky的钩子 ,每次 如果在提交代码的时候都会去校验 

"lint":"eslint --ext .js --ext .jsx client/",
    "precommit":"npm run lint"

lint 的意思是  在 clinet 文件夹下面 去使用eslint 去校验文件夹下的 js和 jsx文件 

 

这样我们  git commit 的时候  如果eslint不通过  就阻止了

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值