{"_id":"@dbappsecurity/eslint-config-standard","_rev":"5-b16e735efa7276d779bcafa68b7d7246","name":"@dbappsecurity/eslint-config-standard","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.1-beta.7":{"name":"@dbappsecurity/eslint-config-standard","version":"1.0.1-beta.7","description":"Dbappseccurity standard shareable config for Eslint","main":"index.js","scripts":{"format":"prettier . --write --ignore-path .gitignore","prepare":"husky install","lint:formatting":"prettier . --check --ignore-path .gitignore","lint:js":"eslint . --report-unused-disable-directives --ignore-path .gitignore","lint:md":"remark . --quiet --frail --ignore-path .gitignore","lint":"npm-run-all --parallel lint:*","version:beta":"npm version prerelease --preid=beta","release:beta":"npm-run-all version:beta release","release":"npm publish","unrelease":"npm unpublish -f","pretest":"npm run lint","test":"jest","test:watch":"jest --watch"},"lint-staged":{"*.js":"eslint --cache --fix","*.{js,md,yml}":"prettier --write"},"prettier":"@dbappsecurity/prettier-config-standard","eslintConfig":{"env":{"es6":true}},"remarkConfig":{"plugins":["remark-preset-lint-recommended"]},"keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","repository":"","dependencies":{"@stylistic/eslint-plugin-js":"1.4.0","eslint":"8.56.0","eslint-config-airbnb-base":"15.0.0","eslint-plugin-import":"2.29.1"},"devDependencies":{"@dbappsecurity/prettier-config-standard":"^1.0.1-beta.7","husky":"8.0.3","jest":"28.1.3","lint-staged":"13.3.0","npm-run-all":"4.1.5","prettier":"3.2.3","remark-cli":"11.0.0","remark-preset-lint-recommended":"6.1.3"},"peerDependencies":{"eslint":"8.56.0"},"_id":"@dbappsecurity/eslint-config-standard@1.0.1-beta.7","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-f057D4E/lAKD67hg9m66xgJn4Puc4wamg6rVqS377pYG8ofYAK7q5exZuVKKXszXCnQHKP8HmmSTRMdtu6TB2A==","shasum":"c52dea3a19dd2d6cd7b5cebc90643536eb066ba5","tarball":"https://registry.npmjs.org/@dbappsecurity/eslint-config-standard/-/eslint-config-standard-1.0.1-beta.7.tgz","fileCount":4,"unpackedSize":20655,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGKAI2ZHGUnz6oaKESttD1G3wwo8y4/TfQxJJPpRQnrQAiAmCwUGcKzeL1dnqotyLdoSHqywh3J8f3r5DoSWm55mhA=="}]},"_npmUser":{"name":"dexleeneversurrender","email":"875827367@qq.com"},"directories":{},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config-standard_1.0.1-beta.7_1706858670686_0.4704384704600919"},"_hasShrinkwrap":false},"1.0.1-beta.8":{"name":"@dbappsecurity/eslint-config-standard","version":"1.0.1-beta.8","description":"Dbappseccurity standard shareable config for Eslint","main":"index.js","scripts":{"format":"prettier . --write --ignore-path .gitignore","prepare":"husky install","lint:formatting":"prettier . --check --ignore-path .gitignore","lint:js":"eslint . --report-unused-disable-directives --ignore-path .gitignore","lint:md":"remark . --quiet --frail --ignore-path .gitignore","lint":"npm-run-all --parallel lint:*","version:beta":"npm version prerelease --preid=beta","release:beta":"npm-run-all version:beta release","release":"npm publish","unrelease":"npm unpublish -f","pretest":"npm run lint","test":"jest","test:watch":"jest --watch"},"lint-staged":{"*.js":"eslint --cache --fix","*.{js,md,yml}":"prettier --write"},"prettier":"@dbappsecurity/prettier-config-standard","eslintConfig":{"env":{"es6":true}},"remarkConfig":{"plugins":["remark-preset-lint-recommended"]},"keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","repository":"","dependencies":{"@stylistic/eslint-plugin-js":"1.4.0","eslint":"8.56.0","eslint-config-airbnb-base":"15.0.0","eslint-plugin-import":"2.29.1"},"devDependencies":{"@dbappsecurity/prettier-config-standard":"^1.0.1-beta.7","husky":"8.0.3","jest":"28.1.3","lint-staged":"13.3.0","npm-run-all":"4.1.5","prettier":"3.2.3","remark-cli":"11.0.0","remark-preset-lint-recommended":"6.1.3"},"peerDependencies":{"eslint":"8.56.0"},"_id":"@dbappsecurity/eslint-config-standard@1.0.1-beta.8","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-tuUOADEoqwuLKLwHyKO8mUcQBLWblQ1Zwj7xf9VHn4B30t0G3GV3GA7YWk3OqVmv2//vRz6UKY/n0FYixjEHEg==","shasum":"5001ddaae8217685157c8f950afe6dd1291dc867","tarball":"https://registry.npmjs.org/@dbappsecurity/eslint-config-standard/-/eslint-config-standard-1.0.1-beta.8.tgz","fileCount":4,"unpackedSize":20833,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4UW1VMLaLmuInATWHaKpmuBD2isJH156guE6Kfx7e6AIgDKCbXahPpR9FtTNlN3C078QwdLIxXJQn7ZY6InfbsHg="}]},"_npmUser":{"name":"dexleeneversurrender","email":"875827367@qq.com"},"directories":{},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config-standard_1.0.1-beta.8_1708572451197_0.1870636085967603"},"_hasShrinkwrap":false},"1.0.2":{"name":"@dbappsecurity/eslint-config-standard","version":"1.0.2","description":"Dbappseccurity standard shareable config for Eslint","main":"index.js","scripts":{"lint:js":"eslint . --report-unused-disable-directives --ignore-path .gitignore","lint:format":"prettier . --check --ignore-path .gitignore","lint:md":"remark . --quiet --frail --ignore-path .gitignore","lint":"npm-run-all --parallel lint:*","lint-fix:js":"eslint . --fix --ignore-path .gitignore","lint-fix:format":"prettier . --write --ignore-path .gitignore","lint-fix:md":"remark . --quiet --output","lint-fix":"npm-run-all --parallel lint-fix:*","pretest":"npm run lint","test":"jest","test:watch":"jest --watch"},"lint-staged":{"*.js":"eslint --fix","*.{js,md,yml}":"prettier --write"},"prettier":"@dbappsecurity/prettier-config-standard","eslintConfig":{"env":{"es6":true}},"remarkConfig":{"plugins":["remark-preset-lint-recommended"]},"keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","repository":"","dependencies":{"@stylistic/eslint-plugin-js":"1.4.0","eslint":"8.56.0","eslint-config-airbnb-base":"15.0.0","eslint-plugin-import":"2.29.1"},"devDependencies":{"@dbappsecurity/prettier-config-standard":"1.0.2","husky":"8.0.3","jest":"28.1.3","lint-staged":"13.3.0","npm-run-all":"4.1.5","prettier":"3.2.3","remark-cli":"11.0.0","remark-preset-lint-recommended":"6.1.3"},"peerDependencies":{"eslint":"8.56.0"},"_id":"@dbappsecurity/eslint-config-standard@1.0.2","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-2yMH5xdOy5lLqSzd3crKpBA6rLNjTajByHQtofW8aE3kNG3gvFMTLsP56plN5ORuJ+7gCHKolK72SC+t63CgQw==","shasum":"f9f3ec66a869eab1cec68fa6d0c755c1dfa7e136","tarball":"https://registry.npmjs.org/@dbappsecurity/eslint-config-standard/-/eslint-config-standard-1.0.2.tgz","fileCount":3,"unpackedSize":19184,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBE9P0/lGqGXNzsAC3I0tKKbIn1uqNQ3Zz10f0+sKRuHAiEAup8d2o2FOCNJRk7X8s7ZcobaEhund0PXfIBdqJ6JkCg="}]},"_npmUser":{"name":"dexleeneversurrender","email":"875827367@qq.com"},"directories":{},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config-standard_1.0.2_1709691463744_0.7226921491984755"},"_hasShrinkwrap":false},"1.0.3":{"name":"@dbappsecurity/eslint-config-standard","version":"1.0.3","description":"Dbappseccurity standard shareable config for Eslint","main":"index.js","scripts":{"lint:js":"eslint . --report-unused-disable-directives --ignore-path .gitignore","lint:format":"prettier . --check --ignore-path .gitignore","lint:md":"remark . --quiet --frail --ignore-path .gitignore","lint":"npm-run-all --parallel lint:*","lint-fix:js":"eslint . --fix --ignore-path .gitignore","lint-fix:format":"prettier . --write --ignore-path .gitignore","lint-fix:md":"remark . --quiet --output","lint-fix":"npm-run-all --parallel lint-fix:*","pretest":"npm run lint","test":"jest","test:watch":"jest --watch"},"lint-staged":{"*.js":"eslint --fix","*.{js,md,yml}":"prettier --write"},"prettier":"@dbappsecurity/prettier-config-standard","eslintConfig":{"env":{"es6":true}},"remarkConfig":{"plugins":["remark-preset-lint-recommended"]},"keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","repository":"","dependencies":{"@stylistic/eslint-plugin-js":"1.4.0","eslint":"8.56.0","eslint-config-airbnb-base":"15.0.0","eslint-plugin-import":"2.29.1"},"devDependencies":{"@dbappsecurity/prettier-config-standard":"1.0.3","husky":"8.0.3","jest":"28.1.3","lint-staged":"13.3.0","npm-run-all":"4.1.5","prettier":"3.2.3","remark-cli":"11.0.0","remark-preset-lint-recommended":"6.1.3"},"peerDependencies":{"eslint":"8.56.0"},"_id":"@dbappsecurity/eslint-config-standard@1.0.3","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-hNQlvo51F0d5d2uoch/o6Lne9CMi1eUIguDOCItcxu5mt1sRrU4xecoU+mTDKrzgTJRMvqualSRU5P9tAw0niA==","shasum":"74b0c41f99fd6e7e00ea2e2ffba98ae648d95959","tarball":"https://registry.npmjs.org/@dbappsecurity/eslint-config-standard/-/eslint-config-standard-1.0.3.tgz","fileCount":3,"unpackedSize":19122,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDk7dLqNk83w5m7uBgfTFv7Q3DfJQUf/fi+NIRjPaWWaAiAqBU7wIGSMAk/jHLveQ/R6Nains+5SXgsi7sowzyoesg=="}]},"_npmUser":{"name":"dexleeneversurrender","email":"875827367@qq.com"},"directories":{},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config-standard_1.0.3_1709691660870_0.06952135033702111"},"_hasShrinkwrap":false},"1.0.4":{"name":"@dbappsecurity/eslint-config-standard","version":"1.0.4","description":"Dbappseccurity standard shareable config for Eslint","main":"index.js","scripts":{"lint:js":"eslint . --report-unused-disable-directives --ignore-path .gitignore","lint:format":"prettier . --check --ignore-path .gitignore","lint:md":"remark . --quiet --frail --ignore-path .gitignore","lint":"npm-run-all --parallel lint:*","lint-fix:js":"eslint . --fix --ignore-path .gitignore","lint-fix:format":"prettier . --write --ignore-path .gitignore","lint-fix:md":"remark . --quiet --output","lint-fix":"npm-run-all --parallel lint-fix:*","pretest":"npm run lint","test":"jest","test:watch":"jest --watch"},"lint-staged":{"*.js":"eslint --fix","*.{js,md,yml}":"prettier --write"},"prettier":"@dbappsecurity/prettier-config-standard","eslintConfig":{"env":{"es6":true}},"remarkConfig":{"plugins":["remark-preset-lint-recommended"]},"keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","repository":"","dependencies":{"@stylistic/eslint-plugin-js":"1.4.0","eslint":"8.56.0","eslint-config-airbnb-base":"15.0.0","eslint-plugin-import":"2.29.1"},"devDependencies":{"@dbappsecurity/prettier-config-standard":"1.0.3","husky":"8.0.3","jest":"28.1.3","lint-staged":"13.3.0","npm-run-all":"4.1.5","prettier":"3.2.3","remark-cli":"11.0.0","remark-preset-lint-recommended":"6.1.3"},"peerDependencies":{"eslint":"8.56.0"},"_id":"@dbappsecurity/eslint-config-standard@1.0.4","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-xWG0fycjv9dCcAYjXnVetfrlFgEpA8naZVWkgTrGLmAWiXaTIb6KwY5iUC2o1//infbwXhVMHIKakBVoCY5Rpg==","shasum":"6cddbe07de87b5de7a8bc31df3e5ef9987dd8fac","tarball":"https://registry.npmjs.org/@dbappsecurity/eslint-config-standard/-/eslint-config-standard-1.0.4.tgz","fileCount":3,"unpackedSize":19067,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqcWqiY6WeNnWJZFMdi+gUNm1uNKFmSNbb0pR5T2s03AiEAx+USHmyVBmd7/JCDnhp6ki8qtM2HcDLacavwXY8vrtY="}]},"_npmUser":{"name":"dexleeneversurrender","email":"875827367@qq.com"},"directories":{},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config-standard_1.0.4_1709693106236_0.5157586902116993"},"_hasShrinkwrap":false},"1.0.5":{"name":"@dbappsecurity/eslint-config-standard","version":"1.0.5","description":"Dbappseccurity standard shareable config for Eslint","main":"index.js","scripts":{"lint:js":"eslint . --report-unused-disable-directives --ignore-path .gitignore","lint:format":"prettier . --check --ignore-path .gitignore","lint:md":"remark . --quiet --frail --ignore-path .gitignore","lint":"npm-run-all --parallel lint:*","lint-fix:js":"eslint . --fix --ignore-path .gitignore","lint-fix:format":"prettier . --write --ignore-path .gitignore","lint-fix:md":"remark . --quiet --output","lint-fix":"npm-run-all --parallel lint-fix:*","pretest":"npm run lint","test":"jest","test:watch":"jest --watch"},"lint-staged":{"*.js":"eslint --fix","*.{js,md,yml}":"prettier --write"},"prettier":"@dbappsecurity/prettier-config-standard","eslintConfig":{"env":{"es6":true}},"remarkConfig":{"plugins":["remark-preset-lint-recommended"]},"keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","repository":"","dependencies":{"@stylistic/eslint-plugin-js":"1.4.0","eslint":"8.56.0","eslint-config-airbnb-base":"15.0.0","eslint-plugin-import":"2.29.1"},"devDependencies":{"@dbappsecurity/prettier-config-standard":"1.0.5","husky":"8.0.3","jest":"28.1.3","lint-staged":"13.3.0","npm-run-all":"4.1.5","prettier":"3.2.3","remark-cli":"11.0.0","remark-preset-lint-recommended":"6.1.3"},"peerDependencies":{"eslint":"8.56.0"},"_id":"@dbappsecurity/eslint-config-standard@1.0.5","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-jvCIlwEx695JP3+aF8nxvncif9ThiQZiELKEO2/KBORE5WxA7ZQCeKQAmQ7FFR15g5vVeSPirIDLH2Alu3ZFpA==","shasum":"3805ccb137d0bfdefa4de4d9994d65bf9406aa47","tarball":"https://registry.npmjs.org/@dbappsecurity/eslint-config-standard/-/eslint-config-standard-1.0.5.tgz","fileCount":3,"unpackedSize":19049,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChxgm08faeAQMOEWbBP2QU4gT4Bu+R22UFewNI8rePkQIgUu3FI+QDCrSpLbiNFq5KFBV1cp0Zc8iZAtlBoO6THMQ="}]},"_npmUser":{"name":"dexleeneversurrender","email":"875827367@qq.com"},"directories":{},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/eslint-config-standard_1.0.5_1709693368839_0.9894925284603773"},"_hasShrinkwrap":false}},"time":{"created":"2024-02-02T07:24:30.592Z","1.0.1-beta.7":"2024-02-02T07:24:30.847Z","modified":"2024-03-06T02:49:29.442Z","1.0.1-beta.8":"2024-02-22T03:27:31.349Z","1.0.2":"2024-03-06T02:17:43.903Z","1.0.3":"2024-03-06T02:21:00.998Z","1.0.4":"2024-03-06T02:45:06.428Z","1.0.5":"2024-03-06T02:49:28.985Z"},"maintainers":[{"name":"dexleeneversurrender","email":"875827367@qq.com"}],"description":"Dbappseccurity standard shareable config for Eslint","keywords":["eslint","eslint-config","config","recommended","airbnb","dbappsecurity"],"author":{"name":"dex.li@dbappsecurity.com.cn"},"license":"MIT","readme":"# @dbappsecurity/eslint-config-standard\n\n在官方推荐 `eslint:recommended` 和独角兽公司 Airbnb 开源的基础配置 `airbnb-base` 上添加/覆盖了较强的校验规则。\n\n## 安装\n\n```sh\nyarn add eslint @dbappsecurity/eslint-config-standard -D\n```\n\n## 配置\n\n在项目根目录创建 `.eslintrc.js`，然后添加：\n\n```sh\nmodule.exports = {\n    // ...\n    extends: ['@dbappsecurity/eslint-config-standard'],\n    // ...\n};\n```\n\n其他文件后缀的默认配置文件按照对应格式配置。\\\n在实际项目中，会根据使用的UI框架语法、是否采用 Typescript、是否配合 Prettier 来增加 `extends`，例如：\n\n```sh\nyarn add eslint-plugin-prettier eslint-config-prettier -D\n```\n\n```sh\nmodule.exports = {\n    // ...\n    extends: [\n        // ...\n        '@dbappsecurity/eslint-config-standard',\n        'plugin:prettier/recommended',\n    ],\n    rules: {\n        'prettier/prettier': ['error'], // 打开 Prettier 校验\n        // ...\n    },\n    // ...\n};\n```\n\n`extends` 中的规则会由后往前覆盖，所以尽量将 `@dbappsecurity/eslint-config-standard` 往后放置来覆盖别的规则，若项目中使用 `plugin:prettier/recommended`，则必须把它放到最后，以解决 ESLint 和 Prettier 规则冲突。\n\n## 使用\n\n分为构建流程和脚本命令两部分：\n\n1.  常用的构建工具有 webpack vite rollup 等，这里以 webpack 为例，首先安装 `eslint-loader`。\n\n    ```sh\n    yarn add eslint-loader -D\n    ```\n\n    然后配置 webpack.config.js：\n\n    ```sh\n    module.exports = {\n        // ...\n        module: [\n            rules: [\n                // ...\n                ...(process.env.NODE_ENV === 'development' // 仅开发环境启动校验\n                    ? [\n                        {\n                            test: /\\.js$/,\n                            exclude: /node_modules/,\n                            loader: 'eslint-loader',\n                            options: {\n                                // ... eslint options (if necessary)\n                            },\n                        },\n                    ]\n                    : []),\n            ],\n        ],\n    };\n    ```\n\n    以上是最基础的配置。\n    在实际项目中，各UI框架都提供了封装了 `eslint-loader` 对应的 plugin，例如：Vue2 使用 `@vue/cli-plugin-eslint` 后，方可在 `vue.config.js` 中通过 `lintOnSave` 开启或关闭 ESLint。\n\n2.  在 package.json 中添加脚本命令：\n\n    ```sh\n    {\n        // ...\n        \"scripts\": {\n            \"lint:js\": \"eslint \\\"./**/*.{js}\\\"\",\n            \"lint:js:fix\": \"eslint \\\"./**/*.{js}\\\" --fix\",\n        }\n        // ...\n    }\n    ```\n\n    上述脚本命令仅校验 JavaScript 文件。\n    在实际项目中，各UI框架都提供了对应的文件类型，例如：`.vue` `.jsx` `.tsx` 等，这类文件的校验需要根据情况手动添加。\n\n## 其他\n\n1.  在工程化项目中，我们常常使用构建工具提供的路径别名来为模块导入提供便利，而仅通过 eslint 命令校验时，往往不能解析路径别名，这时我们就需要为 eslint 添加别名解析器：\n\n    ```sh\n    yarn add eslint-import-resolver-alias -D\n    ```\n\n    然后配置 `.eslintrc.js` 中的 `settings` 和 `rules`：\n\n    ```sh\n    module.exports = {\n        // ...\n        settings: {\n            // ...\n            'import/resolver': {\n                alias: {\n                    map: [['^@/*', path.resolve(__dirname, 'src/')]],\n                    extensions: ['.js', '.vue', '.jsx', '.tsx'], // 根据UI库调整扩展名\n                },\n            },\n        },\n        rules: {\n            //...\n            'import/extensions': ['error', { js: 'js', vue: 'vue', jsx: 'jsx', tsx: 'tsx' }], // 与别名扩展名保持一致\n        },\n        // ...\n    };\n    ```\n","readmeFilename":"README.md"}