赞
踩
prettier
1、使用npx
初始化一个项目,这里我使用typescript
模板的方式构建项目
npx create-react-app react-demo1 --template typescript
2、参考官方的方式配置,官方地址
3、安装插件包
npm install --save-dev --save-exact prettier
4、在根目录下创建一个.prettierrc
和.prettierignore
的文件
prettierr
文件是配置prettierr
规则的.prettierignore
是配置不需要prettierr
的文件,有点类似.gitignore
的作用5、在.prettierignore
配置
build
coverage
6、在.prettierr
中配置,以下是我自己项目中配置的,仅供参考
{
"prettier.semi": true,
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 100,
"tabWidth": 2,
"endOfLine": "auto",
"arrowParens": "always"
}
更多配置可以参考官方,官网地址,以下是我提供的文字说明
{ "printWidth": 100, // 超过最大值换行 "tabWidth": 4, // 缩进字节数 "useTabs": false, // 缩进不使用tab,使用空格 "semi": true, // 句尾添加分号 "singleQuote": true, // 使用单引号代替双引号 "proseWrap": "preserve", // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行 "arrowParens": "avoid", // (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号 "bracketSpacing": true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }" "disableLanguages": ["vue"], // 不格式化vue文件,vue文件的格式化单独设置 "endOfLine": "auto", // 结尾是 \n \r \n\r auto "eslintIntegration": false, //不让prettier使用eslint的代码格式进行校验 "htmlWhitespaceSensitivity": "ignore", "ignorePath": ".prettierignore", // 不使用prettier格式化的文件填写在项目的.prettierignore文件中 "jsxBracketSameLine": false, // 在jsx中把'>' 是否单独放一行 "jsxSingleQuote": false, // 在jsx中使用单引号代替双引号 "parser": "babylon", // 格式化的解析器,默认是babylon "requireConfig": false, // Require a 'prettierconfig' to format prettier "stylelintIntegration": false, //不让prettier使用stylelint的代码格式进行校验 "trailingComma": "es5", // 在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号) "tslintIntegration": false // 不让prettier使用tslint的代码格式进行校验 }
7、由于create-react-app
创建的项目自带了eslint
的规范,我们又加一个prettierr
,自然会出现有冲突的时候,这时候我们就要告知使用谁的规范。可以简单的理解为优先级吧,参考官网
安装依赖包
npm install eslint-config-prettier -D
在package.json
中配置下
{
...
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest",
// 添加这行代码
"prettier"
]
},
...
}
git
的钩子函数,对每次commit
的时候就使用prettierr
格式化代码1、参考地址
2、使用npx
生成文件
npx mrm lint-staged
3、运行上面的命令会自动在package.json
中添加配置
{
"lint-staged":
// 默认生成的
// "*.{js,css,md}": "prettier --write"
// 项目是要使用ts的话就要添加下
"*.{ts,tsx,css,md}": "prettier --write"
}
}
4、在package.json
中添加husky
的提交钩子
{ ... "husky": { "hooks": { "pre-commit": "lint-staged" } }, "lint-staged": { "*.{js,ts,tsx}": [ "prettier --write", // 添加这行表示修复后会自动执行git add操作 "git add" ] } ... }
index.ts
文件,将单引号改为双引号,把分号去掉,然后使用git
提交代码查看文件是不是自动格式化了git
的提交规范1、参考文档
2、安装依赖包
npm install --save-dev @commitlint/config-conventional @commitlint/cli
3、生产一个commitlint.config.js
文件
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js
以下是我自己根据网上的修改了下
module.exports = { extends: ['@commitlint/config-conventional'], rules: { 'type-enum': [ 2, 'always', ['upd', 'feat', 'fix', 'docs', 'style', 'refactor', 'test', 'chore'], ], }, }; /** * https://segmentfault.com/a/1190000017790694 * upd: 更新 * feat: 新增 * fix: 修复 * docs: 文档 * style: 样式 * refactor: 重构代码 * test: 单元测试 * chore: 构建过程或辅助工具的变动 */
4、生成提示信息的
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
5、测试提交
6、每次提交代码的时候必须带上说明
git add .
git commit -m 'feat: 新增代码'
eslint
的也许你会说上面每次提交代码都会自动帮我们格式化,但是我们更加希望在我们写代码的时候,每次保存代码的时候就能发现哪里不规范,这样提交代码的时候直接提交,不需要再来一个一个修改。
1、初始化eslint
,等待一瞬间会在项目的根目录下生成一个.eslintrc.js
的文件
npx eslint --init
2、相对于的在项目的根目录下创建.eslintignore
来忽视不需要检查的文件
# 注释,忽略文件
node_modules
src/serviceWorker.ts
src/react-app-env.d.ts
*.lock
3、我们配置的prettier
那么我们就要对eslint
和prettier
兼容,参的地址
npm install eslint-plugin-prettier -D
npm install eslint-config-prettier -D
4、根据文档来配置
5、现在react
都是使用hooks
开发了,自然也要配置这个规则,参考地址
6、运行项目,手动删除一个分号或者单引号改为双引号
7、付一份我的.eslintrc.js
文件配置
module.exports = { env: { browser: true, es2021: true, }, extends: [ 'react-app', 'eslint:recommended', 'plugin:react/recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended', 'plugin:react-hooks/recommended', ], parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 12, sourceType: 'module', }, plugins: ['react', '@typescript-eslint', 'prettier', 'react-hooks'], rules: { 'prettier/prettier': 'error', 'arrow-body-style': 'off', 'prefer-arrow-callback': 'off', 'react-hooks/rules-of-hooks': 'error', 'react-hooks/exhaustive-deps': 'warn', }, };
1、安装依赖包
npm install --save-dev stylelint stylelint-config-standard
2、项目的根目录下创建文件.stylelintrc
{
"extends": ["stylelint-config-standard"],
"rules": {}
}
3、在package.json
中配置git
钩子来格式化样式
{
...
"lint-staged": {
"*.{js,ts,tsx}": [
"prettier --write",
"git add"
],
// 针对css或者scss的样式格式化,如果你用less就继续加上
"*.{css,scss}": [
"stylelint src/**/*.css --fix",
"stylelint src/**/*.scss --fix"
]
}
...
}
4、在index.css
中随便写点样式,然后使用git
提交代码查看样式否格式化
5、使用git
提交代码的时候会比较慢,似乎还在拉取什么包,这时候建议删除node_modules
然后重新安装
1、在项目下创建一个.editorconfig
文件
# http://editorconfig.org root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false [Makefile] indent_style = tab
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。