From 0ffcd5fe4ad2ee9ffa9c9cc83ab75b70c5b1fb81 Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 9 May 2023 10:23:22 -0400 Subject: [PATCH 1/2] chore: cross-platform `rm -rf` script --- package.json | 4 ++-- packages/next-swc/package.json | 2 +- scripts/rm.mjs | 13 +++++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 scripts/rm.mjs diff --git a/package.json b/package.json index 23ae97139f124..2e22230ef9311 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "scripts": { "new-error": "plop error", "new-test": "plop test", - "clean": "lerna clean -y && lerna bootstrap && lerna run clean && lerna exec 'rm -rf ./dist'", + "clean": "lerna clean -y && lerna bootstrap && lerna run clean && lerna exec 'node ../../scripts/rm.mjs dist'", "build": "turbo run build", "lerna": "lerna", "dev": "turbo run dev --parallel", @@ -45,7 +45,7 @@ "next-with-deps": "./scripts/next-with-deps.sh", "next": "cross-env NEXT_TELEMETRY_DISABLED=1 node --trace-deprecation --enable-source-maps packages/next/dist/bin/next", "next-no-sourcemaps": "cross-env NEXT_TELEMETRY_DISABLED=1 node --trace-deprecation packages/next/dist/bin/next", - "clean-trace-jaeger": "rm -rf test/integration/basic/.next && TRACE_TARGET=JAEGER pnpm next build test/integration/basic", + "clean-trace-jaeger": "node scripts/rm.mjs test/integration/basic/.next && TRACE_TARGET=JAEGER pnpm next build test/integration/basic", "debug": "cross-env NEXT_TELEMETRY_DISABLED=1 node --inspect packages/next/dist/bin/next", "postinstall": "git config index.skipHash false && node scripts/install-native.mjs", "version": "npx pnpm@7.24.3 install --no-frozen-lockfile && IS_PUBLISH=yes ./scripts/check-pre-compiled.sh && git add .", diff --git a/packages/next-swc/package.json b/packages/next-swc/package.json index 17e44e52e7fd5..4767c06c3a062 100644 --- a/packages/next-swc/package.json +++ b/packages/next-swc/package.json @@ -3,7 +3,7 @@ "version": "13.4.2-canary.3", "private": true, "scripts": { - "clean": "rm -rf ./native/*", + "clean": "node ../../scripts/rm.mjs native", "build-native": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --features plugin,rustls-tls --js false native", "build-native-woa": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --cargo-flags=--no-default-features --features plugin,native-tls --js false native", "build-native-no-plugin": "napi build --platform -p next-swc-napi --cargo-cwd ../../ --cargo-name next_swc_napi --js false native", diff --git a/scripts/rm.mjs b/scripts/rm.mjs new file mode 100644 index 0000000000000..db6fc298d9a4c --- /dev/null +++ b/scripts/rm.mjs @@ -0,0 +1,13 @@ +// @ts-check +import { rm } from 'fs/promises' +import { join } from 'path' + +const args = process.argv.slice(2) +if (args.length === 0) { + throw new Error('rm.mjs: requires a least one parameter') +} +for (const arg of args) { + const path = join(process.cwd(), arg) + console.log(`rm.mjs: deleting path "${path}"`) + await rm(path, { recursive: true, force: true }) +} From 1c762015e054171b64141645bb465b13f33ba74a Mon Sep 17 00:00:00 2001 From: Steven Date: Tue, 9 May 2023 11:02:34 -0400 Subject: [PATCH 2/2] Completely remove rimraf --- package.json | 3 +- packages/create-next-app/helpers/git.ts | 4 +- packages/create-next-app/helpers/make-dir.ts | 2 +- packages/create-next-app/package.json | 5 +- packages/font/package.json | 2 +- packages/next-env/package.json | 5 +- packages/react-dev-overlay/package.json | 2 +- packages/react-refresh-utils/package.json | 2 +- pnpm-lock.yaml | 58 +++++++------------- 9 files changed, 32 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 2e22230ef9311..0bdc4e241ee20 100644 --- a/package.json +++ b/package.json @@ -198,11 +198,11 @@ "react": "18.2.0", "react-17": "npm:react@17.0.2", "react-builtin": "npm:react@18.3.0-canary-16d053d59-20230506", - "react-experimental-builtin": "npm:react@0.0.0-experimental-16d053d59-20230506", "react-dom": "18.2.0", "react-dom-17": "npm:react-dom@17.0.2", "react-dom-builtin": "npm:react-dom@18.3.0-canary-16d053d59-20230506", "react-dom-experimental-builtin": "npm:react-dom@0.0.0-experimental-16d053d59-20230506", + "react-experimental-builtin": "npm:react@0.0.0-experimental-16d053d59-20230506", "react-server-dom-webpack": "18.3.0-canary-16d053d59-20230506", "react-server-dom-webpack-experimental": "npm:react-server-dom-webpack@0.0.0-experimental-16d053d59-20230506", "react-ssr-prepass": "1.0.8", @@ -212,7 +212,6 @@ "release": "6.3.1", "request-promise-core": "1.1.2", "resolve-from": "5.0.0", - "rimraf": "3.0.2", "sass": "1.54.0", "satori": "0.4.4", "scheduler-builtin": "npm:scheduler@0.24.0-canary-16d053d59-20230506", diff --git a/packages/create-next-app/helpers/git.ts b/packages/create-next-app/helpers/git.ts index 80948348acea0..965c8b6086c6b 100644 --- a/packages/create-next-app/helpers/git.ts +++ b/packages/create-next-app/helpers/git.ts @@ -1,7 +1,7 @@ /* eslint-disable import/no-extraneous-dependencies */ import { execSync } from 'child_process' import path from 'path' -import rimraf from 'rimraf' +import fs from 'fs' function isInGitRepository(): boolean { try { @@ -40,7 +40,7 @@ export function tryGitInit(root: string): boolean { } catch (e) { if (didInit) { try { - rimraf.sync(path.join(root, '.git')) + fs.rmSync(path.join(root, '.git'), { recursive: true, force: true }) } catch (_) {} } return false diff --git a/packages/create-next-app/helpers/make-dir.ts b/packages/create-next-app/helpers/make-dir.ts index 00bfed2eb42ac..5b12b996f03f6 100644 --- a/packages/create-next-app/helpers/make-dir.ts +++ b/packages/create-next-app/helpers/make-dir.ts @@ -3,6 +3,6 @@ import fs from 'fs' export function makeDir( root: string, options = { recursive: true } -): Promise { +): Promise { return fs.promises.mkdir(root, options) } diff --git a/packages/create-next-app/package.json b/packages/create-next-app/package.json index 6dd425049a3d2..16c003cb00c4a 100644 --- a/packages/create-next-app/package.json +++ b/packages/create-next-app/package.json @@ -22,7 +22,7 @@ ], "scripts": { "dev": "ncc build ./index.ts -w -o dist/", - "prerelease": "rimraf ./dist/", + "prerelease": "node ../../scripts/rm.mjs dist", "release": "ncc build ./index.ts -o ./dist/ --minify --no-cache --no-source-map-register", "prepublishOnly": "cd ../../ && turbo run build", "build": "pnpm release", @@ -33,9 +33,8 @@ "@types/ci-info": "2.0.0", "@types/cross-spawn": "6.0.0", "@types/glob": "7.1.1", - "@types/node": "^12.6.8", + "@types/node": "^16.8.0", "@types/prompts": "2.0.1", - "@types/rimraf": "3.0.0", "@types/tar": "4.0.3", "@types/validate-npm-package-name": "3.0.0", "@vercel/ncc": "0.34.0", diff --git a/packages/font/package.json b/packages/font/package.json index 6d16529ecd502..5851423c6f921 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -13,7 +13,7 @@ ], "license": "MIT", "scripts": { - "build": "rimraf dist && pnpm ncc-fontkit && tsc -d -p tsconfig.json", + "build": "node ../../scripts/rm.mjs dist && pnpm ncc-fontkit && tsc -d -p tsconfig.json", "prepublishOnly": "cd ../../ && turbo run build", "dev": "pnpm ncc-fontkit && tsc -d -w -p tsconfig.json", "typescript": "tsec --noEmit -p tsconfig.json", diff --git a/packages/next-env/package.json b/packages/next-env/package.json index c432c934399d4..abd0b0641525e 100644 --- a/packages/next-env/package.json +++ b/packages/next-env/package.json @@ -22,7 +22,7 @@ ], "scripts": { "dev": "ncc build ./index.ts -w -o dist/", - "prerelease": "rimraf ./dist/", + "prerelease": "node ../../scripts/rm.mjs dist", "types": "tsc index.ts --declaration --emitDeclarationOnly --declarationDir dist --esModuleInterop", "release": "ncc build ./index.ts -o ./dist/ --minify --no-cache --no-source-map-register", "build": "pnpm release && pnpm types", @@ -31,7 +31,6 @@ "devDependencies": { "@vercel/ncc": "0.34.0", "dotenv": "10.0.0", - "dotenv-expand": "8.0.1", - "rimraf": "3.0.2" + "dotenv-expand": "8.0.1" } } diff --git a/packages/react-dev-overlay/package.json b/packages/react-dev-overlay/package.json index 14b9fc4c75562..60c6d753a165c 100644 --- a/packages/react-dev-overlay/package.json +++ b/packages/react-dev-overlay/package.json @@ -12,7 +12,7 @@ "author": "Joe Haddad ", "license": "MIT", "scripts": { - "build": "rimraf dist && tsc -d -p tsconfig.json", + "build": "node ../../scripts/rm.mjs dist && tsc -d -p tsconfig.json", "prepublishOnly": "cd ../../ && turbo run build", "dev": "tsc -d -w -p tsconfig.json", "typescript": "tsec --noEmit -p tsconfig.json" diff --git a/packages/react-refresh-utils/package.json b/packages/react-refresh-utils/package.json index c657875b69e0b..c90382ff3654d 100644 --- a/packages/react-refresh-utils/package.json +++ b/packages/react-refresh-utils/package.json @@ -12,7 +12,7 @@ "author": "Joe Haddad ", "license": "MIT", "scripts": { - "build": "rimraf dist && tsc -d -p tsconfig.json", + "build": "node ../../scripts/rm.mjs dist && tsc -d -p tsconfig.json", "prepublishOnly": "cd ../../ && turbo run build", "dev": "tsc -d -w -p tsconfig.json" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca62165554348..8174255c9246c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,7 +172,6 @@ importers: release: 6.3.1 request-promise-core: 1.1.2 resolve-from: 5.0.0 - rimraf: 3.0.2 sass: 1.54.0 satori: 0.4.4 scheduler-builtin: npm:scheduler@0.24.0-canary-16d053d59-20230506 @@ -358,7 +357,6 @@ importers: release: 6.3.1 request-promise-core: 1.1.2_request@2.88.2 resolve-from: 5.0.0 - rimraf: 3.0.2 sass: 1.54.0 satori: 0.4.4 scheduler-builtin: /scheduler/0.24.0-canary-16d053d59-20230506 @@ -416,9 +414,8 @@ importers: '@types/ci-info': 2.0.0 '@types/cross-spawn': 6.0.0 '@types/glob': 7.1.1 - '@types/node': ^12.6.8 + '@types/node': ^16.8.0 '@types/prompts': 2.0.1 - '@types/rimraf': 3.0.0 '@types/tar': 4.0.3 '@types/validate-npm-package-name': 3.0.0 '@vercel/ncc': 0.34.0 @@ -441,9 +438,8 @@ importers: '@types/ci-info': 2.0.0 '@types/cross-spawn': 6.0.0 '@types/glob': 7.1.1 - '@types/node': 12.12.24 + '@types/node': 16.18.27 '@types/prompts': 2.0.1 - '@types/rimraf': 3.0.0 '@types/tar': 4.0.3 '@types/validate-npm-package-name': 3.0.0 '@vercel/ncc': 0.34.0 @@ -966,12 +962,10 @@ importers: '@vercel/ncc': 0.34.0 dotenv: 10.0.0 dotenv-expand: 8.0.1 - rimraf: 3.0.2 devDependencies: '@vercel/ncc': 0.34.0 dotenv: 10.0.0 dotenv-expand: 8.0.1 - rimraf: 3.0.2 packages/next-mdx: specifiers: @@ -5240,7 +5234,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.3 '@types/istanbul-reports': 3.0.0 - '@types/node': 14.14.31 + '@types/node': 18.11.18 '@types/yargs': 17.0.10 chalk: 4.1.2 dev: true @@ -6895,7 +6889,7 @@ packages: /@types/amphtml-validator/1.0.0: resolution: {integrity: sha512-CJOi00fReT1JehItkgTZDI47v9WJxUH/OLX0XzkDgyEed7dGdeUQfXk5CTRM7N9FkHdv3klSjsZxo5sH1oTIGg==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/aria-query/5.0.1: @@ -7020,7 +7014,7 @@ packages: /@types/cross-spawn/6.0.0: resolution: {integrity: sha512-evp2ZGsFw9YKprDbg8ySgC9NA15g3YgiI8ANkGmKKvvi0P2aDGYLPxQIC5qfeKNUOe3TjABVGuah6omPRpIYhg==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/debug/4.1.5: @@ -7080,7 +7074,7 @@ packages: /@types/fontkit/2.0.0: resolution: {integrity: sha512-Qe+6szpPLTNsqkDFs2MScJyB51d5Hpobyg/T0QoUWO53WuNOTNLsV8fkE4QQPOJbhOMN5wlwmNeDdsh/e6Uqdg==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/fresh/0.5.0: @@ -7090,7 +7084,7 @@ packages: /@types/fs-extra/8.1.0: resolution: {integrity: sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/glob/7.1.1: @@ -7114,7 +7108,7 @@ packages: /@types/html-validator/5.0.3: resolution: {integrity: sha512-QcKpR0cAWhLy7T3J24dwCuviRyS8xj/gVtFxcfZer9lfRgHdSAUFvE02nI/rsgIxSr71Z/2moXVYvWl2fTAzHQ==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/http-cache-semantics/4.0.0: @@ -7124,7 +7118,7 @@ packages: /@types/http-proxy/1.17.3: resolution: {integrity: sha512-wIPqXANye5BbORbuh74exbwNzj+UWCwWyeEFJzUQ7Fq3W2NSAy+7x7nX1fgbEypr2/TdKqpeuxLnXWgzN533/Q==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/inquirer/8.1.3: @@ -7261,7 +7255,7 @@ packages: /@types/node-fetch/2.6.1: resolution: {integrity: sha512-oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 form-data: 3.0.1 dev: true @@ -7269,15 +7263,12 @@ packages: resolution: {integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==} dev: true - /@types/node/12.12.24: - resolution: {integrity: sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug==} - dev: true - /@types/node/14.14.31: resolution: {integrity: sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g==} + dev: true - /@types/node/17.0.21: - resolution: {integrity: sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==} + /@types/node/16.18.27: + resolution: {integrity: sha512-GFfndd/RINWD19W+xNJ9Qh/sOZ5ieTiOSagA86ER/12i/l+MEnQxsbldGRF23azWjRfe7zUlAldyrwN84a1E5w==} dev: true /@types/node/18.11.18: @@ -7366,13 +7357,6 @@ packages: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} dev: true - /@types/rimraf/3.0.0: - resolution: {integrity: sha512-7WhJ0MdpFgYQPXlF4Dx+DhgvlPCfz/x5mHaeDQAKhcenvQP1KCpLQ18JklAqeGMYSAT2PxLpzd0g2/HE7fj7hQ==} - dependencies: - '@types/glob': 7.1.1 - '@types/node': 17.0.21 - dev: true - /@types/scheduler/0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} @@ -7383,14 +7367,14 @@ packages: /@types/semver/7.3.1: resolution: {integrity: sha512-ooD/FJ8EuwlDKOI6D9HWxgIgJjMg2cuziXm/42npDC8y4NjxplBUn9loewZiBNCt44450lHAU0OSb51/UqXeag==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/send/0.14.4: resolution: {integrity: sha512-SCVCRRjSbpwoKgA34wK8cq14OUPu4qrKigO85/ZH6J04NGws37khLtq7YQr17zyOH01p4T5oy8e1TxEzql01Pg==} dependencies: '@types/mime': 2.0.1 - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/serve-static/1.13.3: @@ -7403,7 +7387,7 @@ packages: /@types/sharp/0.29.3: resolution: {integrity: sha512-83Xp05eK2hvfNnmKLr2Fz0C2A0jrr2TnSLqKRbkLTYuAu+Erj6mKQLoEMGafE73Om8p3q3ryZxtHFM/7hy4Adg==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/shell-quote/1.7.1: @@ -7429,7 +7413,7 @@ packages: resolution: {integrity: sha512-Z7AVMMlkI8NTWF0qGhC4QIX0zkV/+y0J8x7b/RsHrN0310+YNjoJd8UrApCiGBCWtKjxS9QhNqLi2UJNToh5hA==} dependencies: '@types/minipass': 2.2.0 - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/text-table/0.2.1: @@ -7472,7 +7456,7 @@ packages: /@types/ws/8.2.0: resolution: {integrity: sha512-cyeefcUCgJlEk+hk2h3N+MqKKsPViQgF5boi9TTHSK+PoR9KWBb/C5ccPcDyAqgsbAYHTwulch725DV84+pSpg==} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 dev: true /@types/yargs-parser/13.1.0: @@ -10872,7 +10856,7 @@ packages: '@datadog/native-metrics': 1.1.0 '@datadog/pprof': 0.3.0 '@datadog/sketches-js': 1.0.4 - '@types/node': 17.0.21 + '@types/node': 18.11.18 crypto-randomuuid: 1.0.0 diagnostics_channel: 1.1.0 form-data: 3.0.1 @@ -15289,7 +15273,7 @@ packages: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 14.14.31 + '@types/node': 18.11.18 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -15998,7 +15982,7 @@ packages: resolution: {integrity: sha512-mk0umAQ5lT+CaOJ+Qp01N6kz48sJG2kr2n1rX0koqKf6FIygQV0qLOdN9SCYID4IVeSigDOcPeGLozdMLYfb5g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 17.0.21 + '@types/node': 18.11.18 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true