From 1b2c4520596a1021e15ab017a01d634bd4e6807c Mon Sep 17 00:00:00 2001 From: yosuke ota Date: Thu, 12 Aug 2021 10:56:20 +0900 Subject: [PATCH] Update linter --- .circleci/config.yml | 3 --- .eslintrc.js | 13 ++++++++++++- .vscode/settings.json | 4 +++- eslint-internal-rules/.eslintrc.json | 10 +++++++++- package.json | 5 +++-- tools/valid-dependencies-engines.js | 28 ---------------------------- 6 files changed, 27 insertions(+), 36 deletions(-) delete mode 100644 tools/valid-dependencies-engines.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 08717f844..1ce25353a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -84,6 +84,3 @@ jobs: - run: name: Lint command: npm run lint - - run: - name: Check - command: npm run valid diff --git a/.eslintrc.js b/.eslintrc.js index 704f09732..6a8e9a967 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -10,7 +10,12 @@ module.exports = { node: true, mocha: true }, - extends: ['plugin:eslint-plugin/recommended', 'prettier'], + extends: [ + 'plugin:eslint-plugin/recommended', + 'prettier', + 'plugin:node-dependencies/recommended', + 'plugin:jsonc/recommended-with-jsonc' + ], plugins: ['eslint-plugin', 'prettier'], rules: { 'accessor-pairs': 2, @@ -139,6 +144,12 @@ module.exports = { 'eslint-plugin/fixer-return': 'off' } + }, + { + files: ['*.json'], + rules: { + 'prettier/prettier': 'off' + } } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 2c99a4943..7bb646536 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,7 +6,9 @@ "eslint.validate": [ "javascript", "javascriptreact", - "vue" + "vue", + "json", + "jsonc" ], "typescript.tsdk": "node_modules/typescript/lib", "vetur.validation.script": false, diff --git a/eslint-internal-rules/.eslintrc.json b/eslint-internal-rules/.eslintrc.json index 936029a17..a4b9c2090 100644 --- a/eslint-internal-rules/.eslintrc.json +++ b/eslint-internal-rules/.eslintrc.json @@ -2,5 +2,13 @@ "rules": { "consistent-docs-description": "error", "no-invalid-meta": "error" - } + }, + "overrides": [ + { + "files": ["*.json"], + "rules": { + "no-invalid-meta": "off" + } + } + ] } diff --git a/package.json b/package.json index a1b11f5f8..433607c12 100644 --- a/package.json +++ b/package.json @@ -19,8 +19,7 @@ "update": "node ./tools/update.js", "docs:watch": "vuepress dev docs", "predocs:build": "npm run update", - "docs:build": "vuepress build docs", - "valid": "node tools/valid-dependencies-engines" + "docs:build": "vuepress build docs" }, "files": [ "lib" @@ -73,6 +72,8 @@ "eslint-config-prettier": "^6.11.0", "eslint-plugin-eslint-plugin": "^2.2.1", "eslint-plugin-import": "^2.20.2", + "eslint-plugin-jsonc": "^1.4.0", + "eslint-plugin-node-dependencies": "^0.1.0", "eslint-plugin-prettier": "^3.1.3", "eslint-plugin-vue": "file:.", "eslint4b": "^7.0.0", diff --git a/tools/valid-dependencies-engines.js b/tools/valid-dependencies-engines.js deleted file mode 100644 index 2686a7b9b..000000000 --- a/tools/valid-dependencies-engines.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * @author Yosuke Ota - * See LICENSE file in root directory for full license. - */ -'use strict' - -const cp = require('child_process') -const semver = require('semver') -const pkg = require('../package.json') -const nodeVer = pkg.engines.node -const deps = { ...pkg.dependencies, ...pkg.peerDependencies } - -for (const [name, ver] of Object.entries(deps)) { - // eslint-disable-next-line no-console - // console.log(`call npm view "${name}@${ver}" --json`) - const json = cp.execSync(`npm view "${name}@${ver}" --json`, { - maxBuffer: 1024 * 1024 * 100 - }) - const meta = JSON.parse(json) - const v = meta.engines && meta.engines.node - if (v && !semver.subset(nodeVer, v)) { - // eslint-disable-next-line no-console - console.error( - `"${name}@${ver}" is not compatible with "node@${nodeVer}".\nAllowed is:${v}` - ) - process.exit(1) - } -}