博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在react项目中配置ESlint
阅读量:6859 次
发布时间:2019-06-26

本文共 3149 字,大约阅读时间需要 10 分钟。

规范自己的代码从 ESlint 开始。 ESlint 和 webpack 集成,在 babel 编译代码开始前,进行代码规范检测。

Eslint介绍

ESLint是js中目前比较流行的插件化的静态代码检测工具。通过使用它可以保证高质量的代码,尽量减少和提早发现一些错误。使用eslint可以在工程中保证一致的代码风格,特别是当工程变得越来越大、越来越多的人参与进来时,需要加强一些最佳实践。

依赖版本

"webpack": "^2.3.2"

"react": "^15.4.2"

"babel-eslint": "^7.2.3"

"babel-plugin-import": "^1.1.1"

"eslint": "^3.19.0"

"eslint-loader": "^1.7.1"

"eslint-plugin-react": "^6.10.3"

安装依赖

在项目的根目录下,安装eslinteslint-loader

npm --save-dev install eslintnpm --save-dev install eslint-loader复制代码

.eslintrc

.eslintrc是ESlint的配置文件,我们需要在项目的根目录下增加.eslintrc文件。

webpack配置

webpack.config.js中,为需要检测的文件添加eslint-loader加载器。一般我们是在代码编译前进行检测。

module: {    rules: [        // ...        {            test: /\.js[x]?$/,            enforce: 'pre',            use: [{                loader: 'eslint-loader',                 options: { fix: true }            }],            include: path.resolve(__dirname, './src/**/*.js'),            exclude: /node_modules/        },        // ...    ]}复制代码

package.json文件配置

package.json中添加script命令:

"scripts": {      "lint": "eslint --ext .js src"}复制代码

到这里,执行npm run lint就可以检测结果了。

通过babel-eslint来检测ES6代码

安装babel-eslint:

npm install --save-dev babel-eslint复制代码

修改.eslintrc:

{  parser: "babel-eslint",  "rules": {  }}复制代码

在rules中加上规则就可以了。

React的ESLint规则

安装eslint-plugin-react来检测react代码:

npm install --save-dev eslint-plugin-react复制代码

安装之后,我们可以使用react插件来指定我们关于react的第一条代码规则。比如我们要求组件指定PropTypes。

{  parser: "babel-eslint",  "plugins": [    "react"  ],  "rules": {    "max-len": [1, 120, 2, {
ignoreComments: true}], "prop-types": [2] }}复制代码

.eslintrc示例

下面是一份react项目的.eslintrc配置示例

{    //文件名 .eslintrc.json    "env": {        "browser": true,        "es6": true,        "node": true,        "commonjs": true    },    "extends": "eslint:recommended",    "installedESLint": true,    "parserOptions": {        "ecmaFeatures": {            "experimentalObjectRestSpread": true,            "jsx": true,            "arrowFunctions": true,            "classes": true,            "modules": true,            "defaultParams": true        },        "sourceType": "module"    },    "parser": "babel-eslint",    "plugins": [        "react"    ],    "rules": {        "linebreak-style": [            "error",            "unix"        ],        //"semi": ["error", "always"],        "no-empty": 0,        "comma-dangle": 0,        "no-unused-vars": 0,        "no-console": 0,        "no-const-assign": 2,        "no-dupe-class-members": 2,        "no-duplicate-case": 2,        "no-extra-parens": [2, "functions"],        "no-self-compare": 2,        "accessor-pairs": 2,        "comma-spacing": [2, {            "before": false,            "after": true        }],        "constructor-super": 2,        "new-cap": [2, {            "newIsCap": true,            "capIsNew": false        }],        "new-parens": 2,        "no-array-constructor": 2,        "no-class-assign": 2,        "no-cond-assign": 2,        "no-mixed-spaces-and-tabs": 0    }}复制代码

添加pre-commit

如果项目使用了git,可以通过使用pre-commit钩子在每次提交前检测,如果检测失败则禁止提交。可以在很大一定程度上保证代码质量。

首先,安装pre-commit:

npm install pre-commit --save-dev复制代码

在package.json中配置pre-commit需要运行的命令:

"pre-commit": [  "lint"]复制代码

示例代码

转载地址:http://ljxyl.baihongyu.com/

你可能感兴趣的文章
java基础(二)
查看>>
cocos2d中的anchorPoint
查看>>
记录一下:chrome上,把网页保存为文件的插件
查看>>
C#和Javascript间互转的Xxtea加解密
查看>>
BAT批处理中的字符串处理详解(字符串截取)
查看>>
智力题集锦【二】
查看>>
读 《我为什么放弃Go语言》 有感
查看>>
删除MySQL中冗余字段
查看>>
linux基础—课堂随笔_03 SHELL脚本编程基础
查看>>
【Win7快捷键启动程序有哪些妙招】
查看>>
MS DOS 命令大全
查看>>
College student reflects on getting started in open source(一)
查看>>
Windows下初次手动安装composer详细教学
查看>>
Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、...
查看>>
JAVA入门到精通-第53讲-数据库概念
查看>>
升级10.10 Yosemite 后,cocoapods 出现错误(解决方案)
查看>>
[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配...
查看>>
SQL ROW_NUMBER() 分页使用示例
查看>>
UEditor编辑器两个版本任意文件上传漏洞分析
查看>>
Redis分布式锁服务(八)
查看>>