我们在做架构的时候一定要尽量的将标准大众化,这样才能让更多的人接受。
以react为例,用脚手架生成一个项目,目录结构如下【不需要一致,仅供参考】:
【这里放个图】
介绍下我们需要使用的npm模块
npm模块 | 功能介绍 |
---|---|
husky | git的钩子,在git的hook中执行一些命令 |
lint-stafed | 对git暂存的文件进行lint检查 |
eslint | js代码检测工具 |
prettier | 代码格式化模块 |
cnpm install prettier husky lint-staged eslint -S
在项目中执行以下命令进行初始化eslint文件
./node_modules/.bin/eslint --init
选择eslint的提示选项:
【这里配个图】
在项目根目录新建.eslintrc.json文件。在rules选项中加规则:
"rules": {
"no-dupe-keys": "error", // 禁止对象字面量中出现重复的key
"no-duplicate-case": "error", // 禁止出现重复的case标签
"no-empty": ["error", { "allowEmptyCatch": true }], // 禁止出现空语句块,catch可以
"no-ex-assign": "error", // 禁止对catch子句的参数重新赋值
"no-extra-boolean-cast": "error", // 禁止不必要的布尔转换
"curly": "error", // 强制所有控制语句使用一致的括号风格
}
更多校验规则见:eslint官网
在项目根目录下新建.prettierrc文件
{
"printWidth": 100, // 代码换行长度
"tabWidth": 2, // 代码缩进空格数
"useTabs": true, // 使用tab缩进而不是空格缩进
"semi": true, // 是否需要代码尾分号
"singleQuote": true, // 是否使用单引号
"bracketSpacing": true, // 对象内是否加空格
"arrowParens": "avoid", // 单个参数的箭头函数不加括号
}
更多配置见:prettier官网
增加husky 和 lint-staged的配置
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**": [
"prettier --config .prettierrc --write",
"eslint --fix",
"git add"
]
}
我们现在就是需要来检验一下是否配置成功了,我们先修改一些文件,然后执行:
git add .
git commit -m "test"
此时就会进行eslint检验,如果有错误的话commit会失败把错误信息暴露出来。