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

@neosjs/eslint-config

v1.3.0

Published

Neosjs's ESLint config

Downloads

241

Readme

@neosjs/eslint-config

NPM Version Npm Week Downloads Npm Month Downloads Node Version License ESlint Config

  • 自动修复格式(旨在独立使用 不包括 Prettier)
  • 合理的默认设置,最佳实践,只需一行配置
  • 对json,yaml,toml,markdown等进行语法检查
  • ESLint Flat配置,轻松组合!
  • 可选的React,UnoCSS支持。
  • 可选的格式化代码支持CSS,HTML等。
  • 风格原则: 最小化阅读,稳定的差异性,保持一致性
  • 默认情况下遵守 .gitignore
  • 需要 ESLint v9.5.0+

使用方法

起始向导

我们提供了一个命令行工具,帮助您快速设置项目,或者通过一个命令从旧的配置迁移到新的平面配置。

npx @neosjs/eslint-config@latest

手动安装

如果您更喜欢手动设置:

pnpm i -D eslint @neosjs/eslint-config

然后在您的项目根目录下创建 eslint.config.mjs 文件:

// eslint.config.mjs
import neosjs from '@neosjs/eslint-config'

export default neosjs()

在 package.json 中添加脚本

For example:

{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}

请注意,在Flat配置中不再支持 .eslintignore,请查看自定义以获取更多详细信息。

VS Code支持(自动修复)

为了在Visual Studio Code中实现保存时自动修复代码的功能,您需要安装ESLint扩展并配置相应的设置。以下是详细的步骤和说明:

  1. 安装 VS Code ESLint扩展

  2. 在您的项目根目录下,创建或编辑.vscode文件夹中的settings.json文件,添加以下配置:

{
  // 启用ESLint flat config支持
  "eslint.experimental.useFlatConfig": true,

  // 禁用默认的格式化程序,改用ESLint进行格式化
  "prettier.enable": false,
  "editor.formatOnSave": false,

  // 自动修复
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit",
    "source.organizeImports": "never"
  },

  // 在IDE中隐藏样式规则的提示,但仍然自动修复它们
  "eslint.rules.customizations": [
    { "rule": "style/*", "severity": "off" },
    { "rule": "format/*", "severity": "off" },
    { "rule": "*-indent", "severity": "off" },
    { "rule": "*-spacing", "severity": "off" },
    { "rule": "*-spaces", "severity": "off" },
    { "rule": "*-order", "severity": "off" },
    { "rule": "*-dangle", "severity": "off" },
    { "rule": "*-newline", "severity": "off" },
    { "rule": "*quotes", "severity": "off" },
    { "rule": "*semi", "severity": "off" }
  ],

  // 为所有支持的语言启用ESLint
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "vue",
    "html",
    "markdown",
    "json",
    "jsonc",
    "yaml",
    "toml"
  ]
}

自定义

支持ESLint Flat 配置。它提供了更好的组织和组合。

通常,您只需要导入 neosjs 预设:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs()

就是这样!或者您还可以单独配置每个集成,例如:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs({
  // 启用风格格式规则
  // stylistic: true,

  // 或自定义风格规则
  stylistic: {
    indent: 2, // 缩进
    semi: false, // 末尾分号
    quotes: 'single', // 单引号:single, 双引号:double
    commaDangle: 'never' // 最后一项末尾逗号  'never' | 'always' | 'always-multiline' | 'only-multiline';
  },

  // TypeScript和Vue会自动检测,您也可以显式启用它们:
  typescript: true,
  vue: true,

  // 禁用jsonc和yaml支持
  jsonc: false,
  yaml: false,

  // 在Flat配置中不再支持`.eslintignore`,请使用`ignores`代替
  ignores: [
    // ...globs
  ]
})

neosjs 工厂函数还接受任意数量的自定义配置覆盖:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs(
  {
    // 为neosjs的配置配置
  },

  // 可以有多个配置
  {
    files: ['**/*.ts'],
    rules: {},
  },
  {
    rules: {},
  },
)

Vue

对于Vue框架的支持,是通过检查项目中是否安装了vue来自动检测的。您也可以明确地启用或禁用它:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs({
  vue: true
})

UnoCSS

要启用UnoCSS支持,您需要显式地打开它:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs({
  unocss: true,
})

运行 npx eslint 会提示你安装所需的依赖项,你也可以手动安装它们:

npm i -D @unocss/eslint-plugin

React

To enable React support, you need to explicitly turn it on:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs({
  react: true,
})

运行 npx eslint 会提示你安装所需的依赖项,你也可以手动安装它们:

npm i -D @eslint-react/eslint-plugin eslint-plugin-react-hooks eslint-plugin-react-refresh

规则覆盖

某些规则仅在特定文件中启用,例如, ts/* 规则仅在 .ts 文件中启用, vue/* 规则仅在 .vue 文件中启用。如果要覆盖规则,需要指定文件扩展名:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs(
  {
    vue: true,
    typescript: true
  },
  {
    // 记得在这里指定文件glob,否则可能会导致vue插件处理非vue文件
    files: ['**/*.vue'],
    rules: {
      'vue/operator-linebreak': ['error', 'before'],
    },
  },
  {
    // 没有`files`,它们是所有文件的一般规则
    rules: {
      'style/semi': ['error', 'never'],
    },
  }
)

我们还提供了一个 overrides 选项,以使其更容易:

// eslint.config.js
import neosjs from '@neosjs/eslint-config'

export default neosjs({
  vue: {
    overrides: {
      'vue/operator-linebreak': ['error', 'before'],
    },
  },
  typescript: {
    overrides: {
      'ts/consistent-type-definitions': ['error', 'interface'],
    },
  }
})

Lint Staged

如果您想在每次提交之前应用lint和自动修复,可以将以下内容添加到您的 package.json 中:

{
  "simple-git-hooks": {
    "pre-commit": "pnpm lint-staged"
  },
  "lint-staged": {
    "*": "eslint --fix"
  }
}

然后运行:

npm i -D lint-staged simple-git-hooks

// to active the hooks
npx simple-git-hooks

查看启用的规则

一个可视化工具,帮助您查看项目中启用了哪些规则,并将它们应用于哪些文件,@eslint/config-inspector

前往包含 eslint.config.js 的项目根目录,并运行:

npx eslint-flat-config-viewer

License

MIT License © 2021-PRESENT NeosJS