为什么要使用它? 在多人项目中,定义一套大家都同意并标准化的规则是非常耗时的。 即使配置了很多规则,后期强行统一一套风格对于团队来说也是非常分散注意力的。 它可以自动格式化代码,以统一格式和排版。 ==开发者应该关注真正的问题== - 作者翻译
如何使用安装依赖项
1npm
配置.json
:{
'':" --write '**/*.{js,css,md}' "
手动执行命令
1npm
格式化效果
10
11
12
13
14
15
16
17 号
18
19
20
21//格式化前
(道具) {
超级(道具)
this.state = { : '', vin: "", : "" };
= {
//不推荐,设置页面导航标题:“违规查询”,
title: '违规查询', itle: "返回",: true //是否支持滑动返回手势,iOS默认支持,默认关闭
};
//格式化后
(道具) {
超级(道具);
this.state = { : "", vin: "", : "" };
= {
//不推荐,设置页面导航标题:“违规查询”,
title: “违规查询”,
标题:“返回”,
: true //是否支持滑动返回手势,iOS默认支持,默认关闭
};
可以看到代码会自动格式化,默认添加分号,代码会缩进,行宽过长会自动分行; 我们在开发阶段完全不需要担心这些格式问题,而且从代码结构上团队的代码风格可以完全统一。 一致性。
配合使用--插件安装配置
10
11
12
13npm ---保存-dev
//修订。
“”:[“”],
“规则”:{
“/”:[
“错误”,
““: 真的
============如果项目是全局安装的==========那么也需要全局安装,否则会报错==
执行命令。 - 使固定
然后检查你的代码,发现/中设置的代码检测项会根据配置的方法自动修正,比如将所有双引号格式化为单引号(因为默认是格式化为双引号。)
正常情况下,配置的规则已经在项目中使用了。 此时,为了不影响已配置的项目,可以重新设置相应的检测项目; 参数列表参考地址-》官方地址
以下是我使用的配置参数:
10
11
12
13
14
15“规则”:{
“/”:[
“错误”,
: 100,//设置单行字符数
: 4,//缩进空格数
semi: true,//该行代码后面是否需要生成分号?
: "none", //是否要在数组后面的最后一个索引处添加逗号?
: false,//是否需要将双引号格式化为单引号?
: true,//在对象字面量声明中使用的大括号({)之后和(})之前输出空格
: true,//在多行JSX元素的最后一行末尾添加>,使>成为单独的一行(不适用于自闭合和元素)
:'avoid',//给单行箭头函数的参数添加括号
引入预
现在! 经过上面的配置,我们就可以在项目修复的同时得到格式统一的代码了,但是不要怀疑团队开发人员的懒惰,==不要相信大家都执行了代码才提交。 – 修复==
接下来我们需要引入 pre- 在代码提交之前自动完成这一步。
安装 npm i 预安装
修改.json1
7//添加以下配置,以便可以通过npm:js调用--fix自动修复命令
“”:{
"lint:js": ".--修复"
},
“前”:[
“棉绒:js”
然后我们在项目中尝试一下代码。 如果有测试失败,我们可以在命令行查询相关信息并中断提交过程。
10
11
12
13
14
15
16
17 号
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46$ git -m '提交代码检测工具' -a
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
`{“”:“避免”}`。
/Users/admin//rn-speed-/rn-app/index.js
1:7 错误 '' 是一个值但从未使用过 no--vars
2:7 错误 'delay' 是一个值但从未使用过 no--vars
/Users/admin//rn-speed-/rn-app/lib/.js
33:41 错误“数组”但从未使用过 no--vars
73:5 错误“”是无功能的
73:25 错误“”是无功能的
73:48 错误“”是无功能的
94:9 case 块中出现错误 no-case-
94:9 case 块中出现错误 no-case-
110:9 case 块中出现错误 no-case-
/Users/admin//rn-speed-/rn-app/sdk/toast.js
13:35 错误 '' 是但从未使用过 no--vars
/Users/admin//rn-speed-/src//.js
1:8 错误“React”但从未使用过 no--vars
2:10 错误“图像”但从未使用过 no--vars
/Users/admin//rn-speed-/src/index.js
8:8 错误 '' 是但从未使用过 no--vars
✖ 35 (35, 0)
前:
pre-:我们必须将 git pre-hooks 作为 `lint:js` 传递
pre-:挂钩退出代码 (1)。 如果你是你可以
pre-:通过标志跳过 git pre-hooks 到您的:
前:
前:git -n(或--no-)
前:
前:这是病态的。
前:
- 成功!
上述方法进行后续优化的原理是通过pre-hook在提交之前执行命令。 如果检测到未发送代码规则,则返回1,导致git失败; 但每次执行时都会扫描整个文件。 ++== 事实上,每次,你只需要检测改变的文件==++
解决方案: Husky:可以让你通过npm轻松调用各种git hooks。
lint-:利用git的特性,可以提取出本次提交的变更文件,并只处理这些文件。
10
11//单独安装依赖模块
npm husky --save-dev
npm lint--save-dev
//在.json中配置pre-hook任务
“”:{
"": "lint-"//这个值不能改变。 这是 husky 默认的 pre-hook 任务名称。
},
“棉绒-”:{
"*.{js,json,css}": [" --write", "git add"]
至此项目就可以自动化了,大家可以尝试一下
参考: