平时在日常开发的过程中,难免自己会找到自己之前项目的 eslint
配置,然后复制粘贴过来,为了解决这种问题,这里介绍如何构建一个自己习惯的eslint规则包到npm。
创建一个共享 eslint config
首先创建一个 npm package
,package 名必须为 eslint-config-xxx
,或者 scoped modules 以 @scope/eslint-config
前缀命名。
比如:
eslint-config-myConfig
、@lljj/eslint-config
、@lljj/eslint-config-myConfig
都是可以的
然后创建你的规则文件,如 index.js,同时配置 package.json
main
字段指向该文件。
index.js 需要导出一份eslint 配置即可, 如:
1 | module.exports = { |
这里和你项目配置一致,文件为
javasscript
你可以选择按照习惯来导出这些配置即可。
发布你的 eslint config
配置好你的规则之后,可以准备发布到 npm 来供自己或者其他人使用。
申明依赖
这里首先需要在 package.json
配置 peerDependencies
字段申明你的依赖,比如 ESLint
版本等
如下:几种依赖包和版本配置方法都是可以的1
2
3
4
5
6
7{
"peerDependencies": {
"babel-eslint": "10.x",
"eslint": "6.x | 7.x",
"eslint-plugin-vue": ">= 6"
}
}
依赖配置
package.json 通过 peerDependenciesMeta
字段配置依赖是否可选
1 | { |
peerDependenciesMeta npm v6.11.0版本后支持。
发布npm
配置好你的npm版本、name、main 等关键信息即可以发布,更多关键字信息查看这里:package.json配置
使用 npm link
如果仅仅测试也可以使用 npm link
命令做本地测试,npm link文档
npm publish
然后登录npm后执行 npm publish
即可推送到npm,如果使用 scoped modules
记得使用 npm publish --access public
注:关于如何推送一个包到 npm 这里就不做详细说明了
使用共享的 eslint config
只用在项目中安装依赖,然后配置配置你的 .eslintrc
文件使用 extends
配置即可1
2
3{
"extends": "eslint-config-myconfig"
}
可以忽略 eslint-config-
前缀1
2
3{
"extends": "myconfig"
}
如果 scoped modules 不能省略 eslint-config-
- @scope/eslint-config 如下两种格式都支持
1 | { |
- @scope/eslint-config-myconfig 不能省略
1 | { |
导出多分配置
你可能想分享多个配置在同一个 npm 包中,你可以指定额外的配置通过在你的 npm 包中添加一个新文件并在你的 ESLint 配置中引用它。
比如 package/rule-vue.js
:1
2
3{
"extends": "@scope/eslint-config/rule-vue"
}
注:这里你也可以继续添加更多份配置
例子
一个构建共享 eslint的例子:@lljj/eslint-config