From b00e1775c7eb1a462176ea2c29d113c681b1281e Mon Sep 17 00:00:00 2001 From: Alex Ilyaev Date: Wed, 15 Feb 2023 20:58:23 +0200 Subject: [PATCH] Update execa to latest version - Bump minimum Node.js version to 14.18.0 --- .circleci/config.yml | 10 +++++----- package.json | 5 +++-- src/lib/cli.js | 7 ++++--- yarn.lock | 47 ++++++++++++++++++-------------------------- 4 files changed, 31 insertions(+), 38 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 2933795..432c871 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -45,14 +45,14 @@ jobs: docker: - image: circleci/node:lts - node-v8: + node-legacy: <<: *defaults docker: # Some tools depends on `execa` and it has specific node versions dependency: - # error execa@2.0.3: The engine "node" is incompatible with this module. - # Expected version "^8.12.0 || >=9.7.0". - - image: circleci/node:8.12 + # error The engine "node" is incompatible with this module. + # Expected version "^14.18.0 || ^16.14.0 || >=18.0.0". + - image: circleci/node:14.18 workflows: version: 2 @@ -60,4 +60,4 @@ workflows: jobs: - node-latest - node-lts - - node-v8 + - node-legacy diff --git a/package.json b/package.json index b439a2e..741c0c7 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "prepare": "husky install", "start": "node index.js", "start-basic": "node index.js --config tests/configs/basic/package.json", + "start-empty": "node index.js --config tests/configs/empty/package.json", "base-prettier": "prettier --ignore-path .gitignore", "base-eslint": "eslint --ignore-path .gitignore --rule 'no-console: 1'", "format": "npm run base-eslint -- --fix \"**/*.js\" && npm run base-prettier -- --write \"**/*.js\"", @@ -37,7 +38,7 @@ "chalk": "2.4.2", "columnify": "1.6.0", "env-paths": "2.2.0", - "execa": "4.0.0", + "execa": "7.0.0", "fs-extra": "8.1.0", "lodash": "4.17.21", "prompts": "2.3.0", @@ -58,7 +59,7 @@ "prettier": "2.8.4" }, "engines": { - "node": "^8.12.0 || >=9.7.0" + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" }, "volta": { "node": "18.14.0", diff --git a/src/lib/cli.js b/src/lib/cli.js index ca9762b..4df4ae1 100644 --- a/src/lib/cli.js +++ b/src/lib/cli.js @@ -7,7 +7,6 @@ const chalk = require('chalk'); const yargs = require('yargs'); const EOL = require('os').EOL; const prompts = require('prompts'); -const execa = require('execa'); const updateNotifier = require('update-notifier'); const envPaths = require('env-paths'); const fs = require('fs-extra'); @@ -268,8 +267,10 @@ async function promptUser(scripts) { * * @param {string} targetScriptName The npm script to run */ -function runNpmScript(targetScriptName) { - return execa.command(`npm run ${targetScriptName}`, { +async function runNpmScript(targetScriptName) { + const { execaCommand } = await import('execa'); + + return execaCommand(`npm run ${targetScriptName}`, { // Needed as the user can provide a custom config path cwd: path.dirname(userConfigFullPath), stdio: 'inherit', diff --git a/yarn.lock b/yarn.lock index 6bbe973..41112d3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1311,15 +1311,6 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -1711,20 +1702,20 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -execa@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.0.tgz#7f37d6ec17f09e6b8fc53288611695b6d12b9daf" - integrity sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA== +execa@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.0.0.tgz#2a44e20e73797f6c2df23889927972386157d7e4" + integrity sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" - is-stream "^2.0.0" + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" execa@^5.0.0: version "5.1.1" @@ -1914,7 +1905,7 @@ get-stream@^4.1.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0, get-stream@^5.1.0: +get-stream@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== @@ -2038,11 +2029,6 @@ http-cache-semantics@^4.0.0: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== - human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -2053,6 +2039,11 @@ human-signals@^3.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +human-signals@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.0.tgz#2095c3cd5afae40049403d4b811235b03879db50" + integrity sha512-zyzVyMjpGBX2+6cDVZeFPCdtOtdsxOeseRhB9tkQ6xXmGUNrcnBzdEKPy3VPNYz+4gy1oukVOXcrJCunSyc6QQ== + husky@8.0.3: version "8.0.3" resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" @@ -3013,7 +3004,7 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -npm-run-path@^4.0.0, npm-run-path@^4.0.1: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==