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

iapyang-eslint

v1.0.1

Published

eslint configure

Downloads

3

Readme

GitHub issues GitHub forks GitHub stars

NPM

NPM

前言

本配置是根据前人总结结合个人使用后的一套修改品。

用法

npm安装

npm i iapyang-eslint babel-eslint eslint -D

新建.eslintrc文件

{
    "extends": "./node_modules/iapyang-eslint/.eslintrc",
    "rules": {
      	// 此处添加或复写你自己的rules,以下是事例
        "no-underscore-dangle": 0,
        "prefer-rest-params": 0,
        "no-plusplus": 0,
        "max-len": 0
    }
}

eslint配置

{
    "env": {
        "browser": true,
        "node": true,
        "es6": true
    },
    "parserOptions": {
        "ecmaVersion": 6,
        "sourceType": "module",
        "ecmaFeatures": {
            "jsx": true,
            "experimentalObjectRestSpread": true
        }
    },
    "parser": "babel-eslint",
    "rules": {
        "new-cap": "error", // 类或构造函数的首字母大写
        "no-underscore-dangle": "error", // 首字母禁止下划线

        // 声明
        "prefer-const": "error", //如果一个变量不会被重新赋值,最好使用const进行声明
        "no-const-assign": "error", //不允许改变用const声明的变量
        "no-var": "error", //用let/const代替var
        "no-use-before-define": "error", //禁止定义前使用


        // 对象
        "no-dupe-keys": "error", // 禁止在对象字面量中出现重复的键
        "no-prototype-builtins": "error", // 禁止直接使用 Object.prototypes 的内置属性
        "no-extend-native": "error", // 禁止扩展原生对象
        "no-new-object": "error", // 禁止使用 Object 构造函数
        "object-shorthand": ["error", "always"], //要求对象字面量简写语法
        "quote-props": ["error", "as-needed"], // 对象属性只在需要的时候加引号


        // 数组
        "no-sparse-arrays": "error", // 禁用稀疏数组
        "no-array-constructor": "error", //禁止使用 Array 构造函数
        "array-callback-return": "error", // 数组回调函数内必须返回一个状态


        // 字符串
        "quotes": ["error", "single", {
            "allowTemplateLiterals": true
        }], // 字符串开头和结束使用单引号
        "prefer-template": "error", // 使用模板而非字符串连接
        "template-curly-spacing": ["error", "never"], // 强制模板字符串中花括号内不能出现空格
        "no-path-concat": "error", // 当使用 _dirname 和 _filename 时不允许字符串拼接
        "no-useless-concat": "error", // 禁止没有必要的字符拼接
        "no-useless-escape": "error", // 禁用不必要的转义


        // 函数
        "no-dupe-args": "error", // 禁止在 function 定义中出现重复的参数
        "no-new-func": "error", // 禁用Function构造函数
        "no-return-assign": "error", // 禁止在返回语句中赋值
        "func-style": ["error", "declaration", {
            "allowArrowFunctions": true
        }], // 统一函数风格为函数表达式或函数声明,并且允许使用箭头函数
        "newline-before-return": "error", // 要求 return 语句之前有一空行
        "wrap-iife": ["error", "outside"], // 立即执行函数外部必须包裹括号
        "no-loop-func": "error", // 禁止在非function内声明function
        "prefer-rest-params": "error", // 参数使用解构形式

        // "space-before-function-paren": "error", // 函数括号前必须要有空格
        "no-param-reassign": "error", // 禁止修改函数参数
        "prefer-spread": "error", // 使用解构形式代替.apply()


        // 箭头函数
        "prefer-arrow-callback": "error", // 回调使用箭头函数
        "arrow-spacing": "error", // 箭头前后要有空格
        "arrow-parens": ["error", "as-needed"], // 参数使用括号包裹
        "arrow-body-style": [
            "error", "as-needed", { "requireReturnForObjectLiteral": true }
        ], // 函数体在必要的时候使用大括号
        "no-confusing-arrow": "error", // 避免容易引起混淆的箭头函数


        // 类 & 构造器
        "no-useless-constructor": "error", // 禁止没必要的构造器
        "no-dupe-class-members": "error", // 禁止重复创建类成员


        // 模块
        "no-duplicate-imports": "error", // 禁止从一个模块多次import


        // 迭代器 & 生成器
        "no-iterator": "error", // 禁止使用Iterator属性
        "no-restricted-syntax": "error", // 使用对应的数组/对象方法去迭代操作成员
        "generator-star-spacing": "error", // *前后不要都有空格


        // 属性
        "dot-notation": "error", //强制在任何允许的时候使用点号访问属性


        // 变量
        "no-undef": "error", // 禁止使用未声明的变量
        // "one-var": ["error", "never"], // 变量统一声明
        "no-plusplus": ["error", { "allowForLoopAfterthoughts": true }], // 禁止使用自增自减运算符


        // 比较运算符 & 相等运算符
        "eqeqeq": "error", // 使用 === 和 !== 代替 == 和 !=
        "no-case-declarations": "error", // 禁止在 case 或 default 子句中出现变量声明
        "no-nested-ternary": "error", // 禁止混合的三目运算符
        "no-unneeded-ternary": "error", //禁止可以在有更简单的可替代的表达式时使用三元操作符


        // 条件
        "no-cond-assign": "error", // 禁止在条件语句中出现赋值操作符
        "no-constant-condition": "error", //禁止在条件中使用常量表达式
        "no-duplicate-case": "error", // 禁止在 switch 语句中的 case 子句中出现重复的测试表达式
        "default-case": "error", // 要求 Switch 语句中有 Default 分支
        "no-else-return": "error", // 如果 if 块中包含了一个 return 语句,else 块就成了多余的了。可以将其内容移至块外
        "no-fallthrough": "error", // 禁止 case 语句落空


        // 代码块
        "brace-style": "error", // 代码块左括号紧跟上一行结束
        "curly": ["error", "multi-line"], // if、else if、else、for、while强制使用大括号,但允许在单行中省略大括号
        "no-empty": ["error", {
            "allowEmptyCatch": true
        }], // 禁止空块语句,但允许出现空的 catch 子句


        // 注释
        "spaced-comment": "error", // 注释前有空格
        "lines-around-comment": "error", // 块级注释前要有空行


        // 空白
        "indent": ["error", 4, {
            "SwitchCase": 1
        }], // 缩进控制4空格
        "no-mixed-spaces-and-tabs": "error", // 禁止使用 空格 和 tab 混合缩进
        "space-before-blocks": ["error", "always"], // 语句块之前的需要有空格
        "keyword-spacing": "error", // 关键字后面必须要有空格
        "space-infix-ops": ["error", {
            "int32Hint": false
        }], // 要求中缀操作符周围有空格,设置 int32Hint 选项为 true (默认 false) 允许 a|0 不带空格
        "eol-last": "error", // 要求文件末尾保留一行空行
        "newline-per-chained-call": "error", // 要求方法链中每个调用都有一个换行符
        "padded-blocks": ["error", "never"], // 代码块开始和结束位置不可以有多余的空行
        "space-in-parens": ["error", "never"], // 禁止圆括号内的空格
        "array-bracket-spacing": ["error", "never"], // 数组紧贴括号部分不允许包含空格
        "object-curly-spacing": ["error", "never"], // 对象紧贴花括号部分不允许包含空格
        "max-len": ["error", {
            "code": 100,
            "ignoreStrings": true,
            "ignoreUrls": true,
            "ignoreComments": true,
            "ignoreTemplateLiterals": true
        }], // 每行字符不能超过100个
        "no-regex-spaces": "error", // 禁止正则表达式字面量中出现多个空格
        "no-multi-spaces": "error", // 禁止出现多个空格而且不是用来作缩进的
        "block-spacing": ["error", "never"], // 单行代码块中紧贴括号部分不允许包含空格
        "computed-property-spacing": ["error", "never"], // 禁止括号和其内部值之间的空格
        "no-trailing-spaces": ["error", {
            "skipBlankLines": true
        }], // 禁用行尾空格
        "no-spaced-func": "error", // 禁止函数调用时,与圆括号之间有空格
        "no-irregular-whitespace": "error", // 禁止不规则的空白
        "space-unary-ops": "error", // 要求或禁止在一元操作符之前或之后存在空格,new、delete、typeof、void、yield要求有空格,-、+、--、++、!、!!要求无空格
        "yield-star-spacing": ["error", {
            "before": true,
            "after": false
        }], // 强制 yield* 表达式中  * 号前有空格,后无空格


        // 逗号
        "comma-style": "error", // 逗号必须放在行末
        "comma-dangle": ["error", "always-multiline"], // 多行对象字面量中要求拖尾逗号
        "comma-spacing": ["error", {
            "before": false,
            "after": true
        }], //在变量声明、数组字面量、对象字面量、函数参数 和 序列中禁止在逗号前使用空格,要求在逗号后使用一个或多个空格


        // 分号
        "semi": "error", //不得省略语句结束的分号
        "semi-spacing": ["error", {
            "before": false,
            "after": true
        }], //禁止分号周围的空格
        "no-extra-semi": "error", // 禁用不必要的分号


        // 类型转换
        "radix": "error", // 在parseInt()中始终使用基数以消除意想不到的后果
        "no-extra-boolean-cast": "error", // 禁止不必要的布尔类型转换


        // 其他最佳实践或规范
        "strict": "error", // 使用强制模式开关use strict;
        "no-extra-parens": "error", // 禁止冗余的括号
        "no-eval": "error", // 禁用 eval()
        "no-with": "error", // 禁用 with 语句
        "no-unexpected-multiline": "error", // 禁止使用令人困惑的多行表达式
        "no-unreachable": "error", // 禁止在 return、throw、continue 和 break 语句后出现不可达代码
        "no-unsafe-finally": "error", // 禁止在 finally 语句块中出现控制流语句
        "valid-typeof": "error", // 强制 typeof 表达式与有效的字符串进行比较
        "no-new-wrappers": "error", // 禁止通过 new 操作符使用 String、Number 和 Boolean
        "handle-callback-err": "error" // 强制回调错误处理
    }
}