npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@shuyun-ep-team/eslint-config

v2.5.0

Published

Kylin's ESLint config with TypeScript support

Downloads

40

Readme

eslint-config-kylin-typescript

介绍

无依赖第三方规则包,启用的所有规则都可以在.eslintc.js 或 rules 文件夹下找到
启用的所有规则都有注释,所有规则的详细说明都在 docs 文件夹下,可通过规则名搜到对应规则的文件名

安装

npm i @shuyun-ep-team/eslint-config --save-dev

注意

不要在项目里手动指定 eslint 版本,正确的做法是使用@shuyun-ep-team/eslint-config 里的 eslint 版本。
手动在 package.json 里指定版本会覆盖@shuyun-ep-team/eslint-config 里 eslint 版本。
如果 eslint 版本不一致,那么@shuyun-ep-team/eslint-config 有可能不会正常工作。

使用

在 package.json 的 script 里新增一条命令和增加 husky, 如下:

"scripts": {
  "checkcode": "eslint -c .eslintrc.js \"**/*.{js,jsx,ts,tsx}\"",
}
"husky": {
  "hooks": {
    "pre-commit": "echo '执行代码格式检测' && npm run checkcode"
  }
},

将下面的代码保存至项目根目录,文件名为.eslintrc.js 默认用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config'],
  rules: {},
};

仅使用javascript规则的用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/base'],
  rules: {},
};

仅使用react规则的用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/react'],
  rules: {},
};

仅使用prettier规则的用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/prettier'],
  rules: {},
};

仅使用vue规则的用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/vue'],
  rules: {},
};

仅使用typescript规则的用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/typescript'],
  rules: {},
};

仅使用comment规则的用法

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/comment'],
  rules: {},
};

建议直接使用"extends": ["@shuyun-ep-team/eslint-config"],不要使用"extends": ["@shuyun-ep-team/eslint-config/base", "@shuyun-ep-team/eslint-config/react", "@shuyun-ep-team/eslint-config/typescript"],因为@shuyun-ep-team/eslint-config 还包含了 prettier 相关的规则

使用 Prettier

eslint有可能会与prettier冲突,请参考此文档排查规则:https://github.com/prettier/eslint-config-prettier#curly

npm i prettier -D
  • 使用

// 在package.json 设置如下
{
  "prettier": "@shuyun-ep-team/eslint-config/.prettierrc"
}

// 或者 在 .prettierrc.js,如
module.exports = {
  ...require("@shuyun-ep-team/eslint-config/.prettierrc"),
  semi: false,
};

非 typescript 非 React 项目的配置参考

module.exports = {
  extends: ['@shuyun-ep-team/eslint-config/base', '@shuyun-ep-team/eslint-config/prettier'],
};

发布流程

先在 package.json 里更新版本号,尽量先发 beta 版
教程(以 1.1.5 版本为例):在 package.json 的 version 的后面加上'-beta.0',即"version": "1.1.5-beta.0"
在实际项目里运行一段时间,如果依然没有发现问题,此时可以发布正式版本
无论是测试版还是正式版,都需要打上 tag

npm publish --tag=beta --access=public dist
curl -X PUT https://npm.taobao.org/sync/@shuyun-ep-team/eslint-config
git tag -a 1.1.5-beta.0 -m 1.1.5-beta.0

正式版

npm run publishToNpm

规则说明

"0"表示忽略问题,等同于"off"; "1"表示给出警告,等同于"warn"; "2"表示直接报错,等同于"error"。

若不适用 React 请使用 base.js

官方地址

eslint官方地址https://eslint.cn/docs/rules/ eslint-plugin-react官方地址https://github.com/yannickcr/eslint-plugin-react eslint-plugin-jsx-a11y官方地址https://github.com/jsx-eslint/eslint-plugin-jsx-a11y eslint-plugin-react-hooks官方地址https://github.com/facebook/react/tree/c11015ff4f610ac2924d1fc6d569a17657a404fd/packages/eslint-plugin-react-hooks eslint-plugin-import官方地址https://github.com/benmosher/eslint-plugin-import

代码提交类型说明

type :(required)代表提交类型;如修改一个 bug 或者是添加一个新的 feature。类型有以下几种:

  • feat :新功能(feature)
  • fix :修复 bug
  • docs :仅修改了文档,如 README、CHANGLOG 等
  • style :仅修改了空格、缩进、逗号、单双引号等,不修改代码逻辑
  • refactor :代码重构,没有新增功能或者修改 bug
  • perf :优化相关,比如提升性能、体验
  • test :测试用例,单元测试、集成测试
  • chore :改进构建流程或添加新依赖、工具等
  • revert :回滚代码到上一次提交