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 🙏

© 2026 – Pkg Stats / Ryan Hefner

eslint-config-zhiketong

v1.0.2

Published

eslint config

Readme

eslint-config 配置

安装

$ npm install eslint-config-zhiketong --save-dev

使用方法

配置文件

在项目根目录下新建文件.eslintrc.js

module.exports = {
  extends: 'zhiketong',
};

使用

执行以下命令即可:

$  ./node_modules/.bin/eslint dir/**.js

如果需要自动格式化代码,在执行时添加--fix选项:

$  ./node_modules/.bin/eslint dir/**.js --fix

配置文件

1.zhiketong - 默认的配置,基于所有环境 Node.js/ES6 mocha测试环境 微信小程序环境 2.zhiketong/mocha - mocha测试环境 3.zhiketong/wechat - 微信小程序环境

规则

   // 允许使用console
   'no-console': [ 'off' ],
   // array函数必须返回值
   'array-callback-return': 'error',
   // 变量只能在其作用域内使用
   'block-scoped-var': 'error',
   // 大括号规则:允许单行时省略大括号,但必须保持一致
   curly: [ 'error', 'multi-line' ],
   // 点操作符和属性放在同一行
   'dot-location': [ 'error', 'property' ],
   // 禁用 caller 或 callee (no-caller)
   'no-caller': 'error',
   // 禁止使用看起来像除法的正则表达式
   'no-div-regex': 'error',
   // 禁止扩展原生对象
   'no-extend-native': 'error',
   // 禁止使用多行字符串
   'no-multi-str': 'error',
   // 禁止对原生对象赋值
   'no-native-reassign': 'error',
   // 禁用Function构造函数
   'no-new-func': 'error',
   // 禁止原始包装实例
   'no-new-wrappers': 'error',
   // 禁用八进制字面量
   'no-octal': 'error',
   // 禁止在字符串字面量中使用八进制转义序列
   'no-octal-escape': 'error',
   // 禁止重新声明变量
   'no-redeclare': 'error',
   // 禁止在 return 语句中使用赋值语句
   'no-return-assign': 'error',
   // 禁止自身比较
   'no-self-compare': 'error',
   // 不允许使用逗号操作符
   'no-sequences': 'error',
   // 限制可以被抛出的异常
   'no-throw-literal': 'error',
   // 禁用不必要的 .call() 和 .apply()
   'no-useless-call': 'error',
   // 禁止没有必要的字符拼接
   'no-useless-concat': 'error',
   // 禁用不必要的转义
   'no-useless-escape': 'error',
   // 禁止使用void操作符
   'no-void': 'error',
   // 禁用 with 语句
   'no-with': 'error',
   // parseInt 要求必须有基数
   radix: 'error',
   // 需要把立即执行的函数包裹起来,比如 (function () { return { y: 1 };})();
   'wrap-iife': [ 'error', 'inside' ],
   // 条件等于比较时,禁止字面量在左边,比如 if ('hello' === a)
   yoda: [ 'error', 'never', { exceptRange: true }],
   // 禁用标签语句
   'no-labels': 'error',
   // 禁用不必要的分号
   'no-extra-semi': 'error',
   // 禁止定义前使用变量
   'no-use-before-define': [ 'error', {
     functions: false,
     classes: false,
   }],
   // 禁止使用 var
   'no-var': 'error',
   // 验证构造函数中 super() 的调用
   'constructor-super': 'error',
   // 不允许修改类声明的变量
   'no-class-assign': 'error',
   // 不允许改变用 const 声明的变量
   'no-const-assign': 'error',
   // 不允许类成员中有重复的名称
   'no-dupe-class-members': 'error',
   // 在构造函数中禁止在调用super()之前使用this或super
   'no-this-before-super': 'error',
   // 禁用 new Symbol()
   'no-new-symbol': 'error',
   // 要求调用无参构造函数时带括号
   'new-parens': 'error',
   // 禁止使用 Array 构造函数
   'no-array-constructor': 'error',
   // 禁止 if 语句作为唯一语句出现在 else 语句块中
   'no-lonely-if': 'error',
   // 禁止使用嵌套的三元表达式
   'no-nested-ternary': 'error',
   // 禁止使用 Object 构造函数
   'no-new-object': 'error',
   // 禁止使用一元操作符 ++ 和 --
   'no-plusplus': [ 'warn', { allowForLoopAfterthoughts: true }],
   // 要求在变量声明周围换行
   'one-var-declaration-per-line': [ 'error', 'initializations' ],
   // 禁止使用 Unicode 字节顺序标记 (BOM)
   'unicode-bom': 'error',
   // 禁止不必要的布尔类型转换
   'no-extra-boolean-cast': 'error',
   // 要求使用 === 和 !==
   eqeqeq: [ 'error', 'allow-null' ],
   // 禁止在 else 前有 return
   'no-else-return': 'error',
   // 关键字不能被遮蔽
   'no-shadow-restricted-names': 'error',

   // ------------------------ Node.js 强制的风格 -------------------------------
   // 强制回调错误处理(当第一个参数以 err 开头时)
   'handle-callback-err': [ 'error', '^err.*$' ],
   // 禁用混合的 Requires
   'no-mixed-requires': 'error',
   // 不允许 new require
   'no-new-require': 'error',
   // 当使用 _dirname 和 _filename 时不允许字符串拼接,必须用 path.resolve(__dirname, xx)
   'no-path-concat': 'error',
   // 禁用未声明的变量
   'no-undef': 'error',

   // ---------------------------- 建议的风格 -----------------------------------
   // 缩进必须为2个空格
   indent: [ 'warn', 2 ],
   // 换行符使用\n
   'linebreak-style': [ 'warn', 'unix' ],
   // 字符串只能使用单引号或者反引号
   quotes: [ 'warn', 'single', { allowTemplateLiterals: true }],
   // 末尾需要分号
   semi: [ 'warn', 'always' ],
   // 强制圆括号内有空格
   'space-in-parens': [ 'warn', 'never' ],
   // 强制对象的花括号中有空格
   'object-curly-spacing': [ 'warn', 'always', {
     objectsInObjects: false,
     arraysInObjects: false,
   }],
   // 强制在方括号内使用空格
   'array-bracket-spacing': [ 'warn', 'always', {
     objectsInArrays: false,
     arraysInArrays: false,
   }],
   // 要求或禁止在注释前有空白
   'spaced-comment': [ 'warn', 'always', { exceptions: [ '-', '+', '=' ]}],
   // 禁用警告注释
   'no-warning-comments': [ 'warn', {
     terms: [ 'todo', 'fixme', 'fix' ],
     location: 'anywhere',
   }],
   // 要求函数圆括号之前有一个空格,比如 function () {} 或 function aaa() {}
   'space-before-function-paren': [ 'warn', {
     anonymous: 'always',
     named: 'never',
   }],
   // 要求文件末尾保留一行空行
   'eol-last': 'warn',
   // 禁用行尾空格
   'no-trailing-spaces': [ 'warn', { skipBlankLines: true }],
   // 要求箭头函数的箭头之前或之后有空格
   'arrow-spacing': 'warn',
   // 强制模板字符串中空格的使用
   'template-curly-spacing': [ 'warn', 'always' ],
   // 要求使用拖尾逗号
   'comma-dangle': [ 'warn', 'always-multiline' ],
   // 强制在单行代码块中使用空格
   'block-spacing': 'warn',
   // 大括号风格
   'brace-style': [ 'warn', '1tbs', { allowSingleLine: true }],
   // 强制在逗号周围使用空格
   'comma-spacing': [ 'warn', { before: false, after: true }],
   // 强制使用一致的逗号风格
   'comma-style': [ 'warn', 'last' ],
   // 强制在对象字面量的键和值之间使用一致的空格
   'key-spacing': [ 'warn', {
     beforeColon: false,
     afterColon: true,
   }],
   // 禁止使用内联注释
   'no-inline-comments': 'warn',
   // 不允许多个空行
   'no-multiple-empty-lines': [ 'warn', {
     max: 2,
     maxEOF: 1,
     maxBOF: 1,
   }],
   // 强制文件的最大行数
   'max-lines': [ 'warn', {
     max: 1000,
     skipComments: true,
     skipBlankLines: true,
   }],
   // 强制函数内最大语句数量
   'max-statements': [ 'warn', 200 ],
   // 强制每一行中所允许的最大语句数量
   'max-statements-per-line': [ 'warn', { max: 5 }],
   // 限制最大参数个数
   'max-params': [ 'warn', 10 ],
   // 强制回调函数最大嵌套深度
   'max-nested-callbacks': [ 'warn', 10 ],
   // 要求中缀操作符周围有空格
   'space-infix-ops': [ 'warn', { int32Hint: false }],
   // 禁止 function 标识符和应用程序之间有空格
   'no-spaced-func': 'warn',
   // 禁止属性前有空白
   'no-whitespace-before-property': 'warn',
   // 禁止使用多个空格
   'no-multi-spaces': 'warn',
   // 禁止使用 空格 和 tab 混合缩进
   'no-mixed-spaces-and-tabs': 'warn',
   // 禁止对函数参数再赋值及修改其属性
   'no-param-reassign': 'warn',
   // 要求构造函数首字母大写
   'new-cap': 'warn',
   // 允许_开头的未使用参数
   'no-unused-vars': [ 'warn', { argsIgnorePattern: '^_' }],
   // 建议使用 const
   'prefer-const': 'warn',
   // 禁用函数内没有yield的 generator 函数
   'require-yield': 'warn',
   // 建议 generator 函数中 * 号周围有空格,比如 function* generator() {}
   'generator-star-spacing': [ 'warn', { before: false, after: true }],
   // 建议在 yield* 表达式中 * 周围使用空格,比如 yield* other();
   'yield-star-spacing': [ 'warn', { before: false, after: true }],
   // 建议对象字面量简写语法
   'object-shorthand': 'warn',
   // 建议可以表达为更简单结构的条件表达式
   'no-unneeded-ternary': 'warn',
   // 禁止变量声明覆盖外层作用域的变量
   'no-shadow': [ 'warn', {
     builtinGlobals: true,
     hoist: 'functions',
     allow: [ 'err', 'error', 'resolve', 'reject', 'done', 'callback', 'next' ],
   }],

   // ------------------------ JSDoc建议的风格 --------------------------------
   'valid-jsdoc': [ 'warn', {
     prefer: {
       returns: 'return',
       arg: 'param',
       argument: 'param',
     },
     preferType: {
       // JavaScript 内置类型
       object: 'Object',
       number: 'Number',
       boolean: 'Boolean',
       array: 'Array',
       string: 'String',
       function: 'Function',
       symbol: 'Symbol',
       mixed: 'Mixed',
       promise: 'Promise',
       // 常用类型
       obj: 'Object',
       int: 'Number',
       long: 'Number',
       float: 'Number',
       double: 'Number',
       bool: 'Boolean',
       char: 'String',
       str: 'String',
       fun: 'Function',
       func: 'Function',
       fn: 'Function',
     },
     requireReturn: false,
     requireReturnType: true,
     requireParamDescription: false,
     requireReturnDescription: false,
   }],

airbnb-base的规则(https://github.com/airbnb/javascript)

相关链接