From 9152faa80c96bd53315a3f9f0fe8dee91bf61cdf Mon Sep 17 00:00:00 2001 From: April Arcus Date: Wed, 15 Apr 2026 12:58:13 -0700 Subject: [PATCH] node: use --require instead of -r This was necessary to unblock the @app/client "build" script under next 15. The problem was that next was parsing the CLI args and re-passing -r as --r, which node doesn't recognize. We update the other usages for consistency. Unblocks Next.js 15.x --- @app/client/package.json | 4 ++-- @app/components/package.json | 2 +- @app/config/README.md | 11 ++++++----- @app/config/env.js | 2 +- @app/config/package.json | 2 +- @app/db/package.json | 4 ++-- @app/e2e/package.json | 4 ++-- @app/graphql/package.json | 2 +- @app/lib/package.json | 2 +- @app/server/package.json | 8 ++++---- @app/worker/package.json | 6 +++--- 11 files changed, 24 insertions(+), 23 deletions(-) diff --git a/@app/client/package.json b/@app/client/package.json index 3a9a1b59..e7a4ce28 100644 --- a/@app/client/package.json +++ b/@app/client/package.json @@ -3,8 +3,8 @@ "private": true, "version": "0.0.0", "scripts": { - "build": "cd src && cross-env NODE_ENV=production NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" next build", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "build": "cd src && cross-env NODE_ENV=production NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" next build", + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "@ant-design/icons": "^5.0.1", diff --git a/@app/components/package.json b/@app/components/package.json index 08ad0d76..b98d6ac2 100644 --- a/@app/components/package.json +++ b/@app/components/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "build": "tsc -b", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "@ant-design/icons": "^5.0.1", diff --git a/@app/config/README.md b/@app/config/README.md index 8c2c174e..51f81ca5 100644 --- a/@app/config/README.md +++ b/@app/config/README.md @@ -18,8 +18,9 @@ various places in the app, for example: ## Environmental variables In order to support multiplatform and docker development in the same repository, -we use `node -r @app/config/env path/to/code` to run various parts of the -project. `node -r` requires a specific module before running the main script; in -this case we're requiring [@app/config/env.js](./env.js) which sources the -settings from `.env` in the root folder and then builds some derivative -environmental variables from them. This is a fairly advanced technique. +we use `node --require @app/config/env path/to/code` to run various parts of the +project. `node --require` requires a specific module before running the main +script; in this case we're requiring [@app/config/env.js](./env.js) which +sources the settings from `.env` in the root folder and then builds some +derivative environmental variables from them. This is a fairly advanced +technique. diff --git a/@app/config/env.js b/@app/config/env.js index 4087b3e9..88c66d5a 100644 --- a/@app/config/env.js +++ b/@app/config/env.js @@ -1,3 +1,3 @@ -/* Use via `node -r @app/config/env path/to/file.js` */ +/* Use via `node --require @app/config/env path/to/file.js` */ require("dotenv").config({ path: `${__dirname}/../../.env` }); require("./extra"); diff --git a/@app/config/package.json b/@app/config/package.json index b5101378..68fc94bc 100644 --- a/@app/config/package.json +++ b/@app/config/package.json @@ -6,7 +6,7 @@ "types": "dist/index.d.ts", "scripts": { "build": "tsc", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "dotenv": "^16.0.3" diff --git a/@app/db/package.json b/@app/db/package.json index 81f62838..9fe47e2c 100644 --- a/@app/db/package.json +++ b/@app/db/package.json @@ -3,7 +3,7 @@ "private": true, "version": "0.0.0", "scripts": { - "gm": "cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" graphile-migrate", + "gm": "cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" graphile-migrate", "migrate": "yarn gm migrate", "watch": "yarn gm watch", "commit": "yarn gm commit", @@ -11,7 +11,7 @@ "reset": "yarn gm reset", "dump": "yarn gm migrate && yarn gm reset --shadow --erase && yarn gm migrate --shadow --forceActions", "wipe-if-demo": "./scripts/wipe-if-demo", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "cross-env": "^7.0.3", diff --git a/@app/e2e/package.json b/@app/e2e/package.json index fbc0ecc6..70d9ded4 100644 --- a/@app/e2e/package.json +++ b/@app/e2e/package.json @@ -3,10 +3,10 @@ "private": true, "version": "0.0.0", "scripts": { - "cy": "cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" cypress", + "cy": "cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" cypress", "open": "yarn cy open", "run": "yarn cy run", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest --passWithNoTests" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest --passWithNoTests" }, "devDependencies": { "cross-env": "^7.0.3", diff --git a/@app/graphql/package.json b/@app/graphql/package.json index cca00a5f..0b2b6f92 100644 --- a/@app/graphql/package.json +++ b/@app/graphql/package.json @@ -9,7 +9,7 @@ "build": "yarn codegen && tsc -b", "watch": "yarn codegen --watch", "codegen": "graphql-codegen --config codegen.yml", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "@apollo/client": "3.6.10", diff --git a/@app/lib/package.json b/@app/lib/package.json index 4bd84d5b..87acdbe5 100644 --- a/@app/lib/package.json +++ b/@app/lib/package.json @@ -6,7 +6,7 @@ "types": "dist/index.d.ts", "scripts": { "build": "tsc -b", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "@apollo/client": "3.6.10", diff --git a/@app/server/package.json b/@app/server/package.json index 3c5ff574..f16402c7 100644 --- a/@app/server/package.json +++ b/@app/server/package.json @@ -4,11 +4,11 @@ "version": "0.0.0", "scripts": { "build": "tsc -b", - "start": "node -r @app/config/env dist/index.js", - "dev": "nodemon --signal SIGINT --watch 'dist/**/*.js' -x \"node --inspect=9678 -r @app/config/env -r source-map-support/register\" dist/index.js", - "schema:export": "ts-node -r @app/config/env scripts/schema-export.ts", + "start": "node --require @app/config/env dist/index.js", + "dev": "nodemon --signal SIGINT --watch 'dist/**/*.js' -x \"node --inspect=9678 --require @app/config/env --require source-map-support/register\" dist/index.js", + "schema:export": "ts-node --require @app/config/env scripts/schema-export.ts", "cloudflare:import": "(echo \"export const cloudflareIps: string[] = [\"; (curl -Ls https://www.cloudflare.com/ips-v4 | sort | sed -e \"s/^/ \\\"/\" -e \"s/$/\\\",/\"); echo \"];\") > src/cloudflare.ts", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "@app/client": "0.0.0", diff --git a/@app/worker/package.json b/@app/worker/package.json index 9ab42936..7974a3b7 100644 --- a/@app/worker/package.json +++ b/@app/worker/package.json @@ -3,12 +3,12 @@ "private": true, "version": "0.0.0", "scripts": { - "gw": "cd dist && cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" graphile-worker --crontab ../crontab", - "dev": "cd dist && cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env --inspect=9757\" graphile-worker --crontab ../crontab --watch", + "gw": "cd dist && cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" graphile-worker --crontab ../crontab", + "dev": "cd dist && cross-env NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env --inspect=9757\" graphile-worker --crontab ../crontab --watch", "build": "tsc -b", "start": "yarn gw", "install-db-schema": "mkdirp dist && yarn gw --schema-only", - "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} -r @app/config/env\" jest" + "test": "cross-env NODE_ENV=test NODE_OPTIONS=\"${NODE_OPTIONS:-} --require @app/config/env\" jest" }, "dependencies": { "@app/config": "0.0.0",