详解create-react-app 自定义 eslint 配置
使用eslint和editorconfig规范代码
为什么要用这些
- 代码规范有利于团队协作
- 纯手工规范耗时耗力而且不能保证准确性
- 能配合编辑器自动提醒错误,提高开发效率
eslint
随着ECMAScript版本一直更新的Js lint工具,插件丰富,并且能够套用规范,规则非常丰富,能够满足大部分团队的需求。
eslint 配合 git
为了最大程度控制每个人的规范,我们可以在git mit代码的时候,使用git hook调用eslint进行代码规范验证,不规范的代码无法提交到仓库。
editorconfig
不同编辑器对文本的格式会有一定的区别,如果不统一一些规范,可能你和别人合作的时候每次更新下来别人的代码就会出一大堆错误-webstorm自动支持editorconfig配置文件。
安装eslintnpm i eslint
因为create-react-app默认已经安装了
"babel-eslint": "7.2.3", "eslint": "4.10.0", "eslint-config-react-app": "^2.1.0", "eslint-loader": "1.9.0", "eslint-plugin-flowtype": "2.39.1", "eslint-plugin-import": "2.8.0", "eslint-plugin-jsx-a11y": "5.1.1", "eslint-plugin-react": "7.4.0",
我们针对我们想要的自定义配置,我们再安装如下
npm i babel-eslint \ \ eslint-config-airbnb eslint-config-standard \ \ eslint-loader \ \ eslint-plugin-import \ \ eslint-plugin-jsx-a11y \ \ eslint-plugin-node \ \ eslint-plugin-promise \ \ eslint-plugin-react \ \ eslint-plugin-standard -D
我们在根目录下新建 .eslintrc 文件针对整个项目做一个标准的规范
{ "extends": "standard" }
主要项目是前端工程,所以我们在前端文件夹下新建 .eslintrc 文件,在这里去规范客户端代码,客户端代码使用 jsx,很多规则和 nodejs 是不同的,在这里使用更加严格的规范来要求客户端代码。
配置的value对应的值 0 : off 1 : warning 2 : error
{ "parser": "babel-eslint", "env": { "browser": true, "es6": true, "node": true }, "parserOptions": { "ecmaVersion": 6, "sourceType": "module" }, "extends": "airbnb", "rules": { "semi": [0], "react/jsx-filename-extension": [0], "jsx-a11y/anchor-is-valid": [0] } }
使用 babel-eslint 去解析代码,定义环境是浏览器和es6,会包含公共变量,webpack所以需要node一些环境变量,parserOptions定义版本,jsmodule模式方法书写。
因为需要在每次编译之前都要去检查一下代码,所以还需要配置 webpack,这是create-react-app默认的
{ test: /\.(js|jsx|mjs)$/, enforce: 'pre', use: [ { options: { formatter: eslintFormatter, eslintPath: require.resolve('eslint'), }, loader: require.resolve('eslint-loader'), }, ], include: paths.appSrc, },
我们希望屏蔽掉 node_modules 文件夹下的代码
exclude:[path.resolve(__dirname, '../node_modules')]
在项目根目录下新建文件 .editorconfig webstom默认就有配置
- root = true 项目根目录
- [] 所有文件都应用这个规则
- charset = utf-8 编码模式
- indent_style = space 使用 tab 的样式制表符和 space
- indent_size = 2
- end_of_line = lf 行尾结尾方式
- insert_final_newline = true 自动保存行尾一行是空行
- trim_trailing_whitespace = true 一行结束后面的空格自动去掉
eslint 不检测这行代码 // eslint-disable-line
eslint 不检测这个文件,在开头 / eslint-disable /
在文件结尾/ eslint-enable /
安装 npm i husky -D
然后在 package.json scripts中增加git 钩子,会在执行git mit之前会调用这个命令
"lint": "eslint --ext .js --ext .jsx src/", "premit": "npm run lint"
git mit 强制执行 eslint 通过的代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程