前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何创建自己的ESLint配置包

如何创建自己的ESLint配置包

作者头像
w候人兮猗
发布2021-03-20 13:36:06
2.3K0
发布2021-03-20 13:36:06
举报

Contents

前言

作为一个爱折腾的前端码农,经常会玩一些自己的项目,为了代码质量,每个项目都会单独配置自己的Eslint 规则,随着项目越来越多,每个项目都可能有自己的规则,这是一件很不好的事情。

Eslint的设计是完全可配置的,我们可以去启用/关闭每个规则,或混合规则达到我们的目的。

考虑到这一点,JavaScript社区和使用JavaScript的公司可以扩展原始的ESLint配置。npm 仓库中也有着很多优秀的事例:https://www.npmjs.com/search?q=eslint-config

eslint-config-airbnb 是我们平时用的最多的包之一。借鉴社区这些包的经验,为了解决我们自己的配置问题,我们今天来看一下如何创建自己的Eslint

建立项目

首先,我们需要创建一个新的文件夹和npm项目,按照约定https://eslint.org/docs/developer-guide/shareable-configs,我们的包名需要以eslint-config-开头,例如:eslint-config-preset

代码语言:javascript
复制
mkdir eslint-config-test
cd eslint-config-test
npm init

一路点击下一步之后,我们会得到这样的package.json

代码语言:javascript
复制
{
  "name": "eslint-config-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

下面,我们来添加我们需要的相关依赖

代码语言:javascript
复制
npm install -D eslint eslint-config-airbnb eslint-config-prettier eslint-plugin-import eslint-plugin-jsx eslint-plugin-prettier eslint-plugin-react eslint-plugin-react-hooks prettier

eslint-config-test 文件夹下新建index.js

代码语言:javascript
复制
module.exports = {
  extends: [
    'airbnb',
    'eslint:recommended',
    'plugin:import/errors',
    'plugin:react/recommended',
    'plugin:jsx-a11y/recommended',
    'plugin:prettier/recommended',
    'prettier/react',
  ],
  plugins: [
    'react-hooks',
  ],
  rules: {
  },
};

rules 对象是我们要覆盖的所有规则,这里我们留空,大家可根据需要作出相应修改

https://github.com/airbnb/javascript/issues/1089Airbnb / JavaScript仓库中,为我们说明了有哪些规则可被我们修改

拓展

有时候我们写的项目是React 或者Vue,对于不同架构的项目,我们的规则可能有所不同,这里我利用lerna 封装了一个多包项目,里面包含了Typescript React Vue等项目配置

https://github.com/osdoc-dev/eslint-config-preset

具体源码,大家可看一下

使用方法也很简单

代码语言:javascript
复制
npm i @osdoc-dev/eslint-config-preset -D # yarn add @osdoc-dev/eslint-config-preset -D
代码语言:javascript
复制
// .eslintrc.js
module.exports = {
  "extends": "@osdoc-dev/eslint-config-preset"
}

到此,该文就结束了,很短也很简单。后续自己的项目都会使用这个配置去进行约束代码风格,避免重复劳动

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 建立项目
  • 拓展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档