From e911a4e67e375f1780d37bbb3f122e9a9dca9db5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 31 Aug 2026 18:24:48 +0000 Subject: [PATCH 1/2] Initial plan From 12d586af444435c5426da4ff762b7265bd7dc18f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 31 Aug 2026 18:27:24 +0000 Subject: [PATCH 2/2] feat: replace cross-env with env-cmd - Install env-cmd, remove cross-env - Create .env-cmdrc with dev (ports 8788/5174) and e2e (ports 8789/5175) profiles - Update root dev:server, dev:web, dev:desktop scripts to use env-cmd -e dev --no-override - Update playwright.config.ts webServer commands to use root npm scripts so e2e env vars injected by Playwright take precedence (--no-override) Co-authored-by: adam4813 <3011917+adam4813@users.noreply.github.com> --- .env-cmdrc | 11 +++++++ package-lock.json | 72 +++++++++++++++++++++++++------------------- package.json | 8 ++--- playwright.config.ts | 6 ++-- 4 files changed, 59 insertions(+), 38 deletions(-) create mode 100644 .env-cmdrc diff --git a/.env-cmdrc b/.env-cmdrc new file mode 100644 index 0000000..aa2cffb --- /dev/null +++ b/.env-cmdrc @@ -0,0 +1,11 @@ +{ + "dev": { + "NOTES_PORT": "8788", + "WEB_PORT": "5174" + }, + "e2e": { + "NOTES_PORT": "8789", + "WEB_PORT": "5175", + "NOTES_TOME": "e2e-tome" + } +} diff --git a/package-lock.json b/package-lock.json index 12cd6a4..df57b9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "@types/node": "^26.2.0", "7zip-bin": "^5.2.0", "concurrently": "^10.0.4", - "cross-env": "^10.1.0", + "env-cmd": "^11.0.0", "esbuild": "^0.28.2", "eslint": "^9.39.5", "eslint-plugin-import": "^2.31.0", @@ -2472,9 +2472,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2492,9 +2489,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -2512,9 +2506,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2532,9 +2523,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2552,9 +2540,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -2572,9 +2557,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -4713,6 +4695,7 @@ "version": "13.0.3", "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-13.0.3.tgz", "integrity": "sha512-RbOBxmLBG8uvFUc15X9+9SFemKcQ0WBuISBVkpuiaUB2qblC8UWlHEjdWVoZ8AdhSwmoEgsiXKfopX0CQxaACQ==", + "hasInstallScript": true, "license": "MIT", "dependencies": { "node-addon-api": "^8.0.0" @@ -6634,6 +6617,44 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-cmd": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-11.0.0.tgz", + "integrity": "sha512-gnG7H1PlwPqsGhFJNTv68lsDGyQdK+U9DwLVitcj1+wGq7LeOBgUzZd2puZ710bHcH9NfNeGWe2sbw7pdvAqDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commander-js/extra-typings": "^13.1.0", + "commander": "^13.1.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "env-cmd": "bin/env-cmd.js" + }, + "engines": { + "node": ">=20.10.0" + } + }, + "node_modules/env-cmd/node_modules/@commander-js/extra-typings": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/@commander-js/extra-typings/-/extra-typings-13.1.0.tgz", + "integrity": "sha512-q5P52BYb1hwVWE6dtID7VvuJWrlfbCv4klj7BjUUOqMz4jbSZD4C9fJ9lRjL2jnBGTg+gDDlaXN51rkWcLk4fg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "commander": "~13.1.0" + } + }, + "node_modules/env-cmd/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/env-paths": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-3.0.0.tgz", @@ -9383,9 +9404,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -9407,9 +9425,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -9431,9 +9446,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -9455,9 +9467,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MPL-2.0", "optional": true, "os": [ @@ -12436,6 +12445,7 @@ "os": [ "darwin" ], + "peer": true, "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } diff --git a/package.json b/package.json index e1de335..05fa7d2 100644 --- a/package.json +++ b/package.json @@ -12,9 +12,9 @@ ], "scripts": { "dev": "concurrently -n server,web -c blue,green \"npm:dev:server\" \"npm:dev:web\"", - "dev:server": "cross-env NOTES_PORT=8788 npm --workspace @notes/server run dev", - "dev:web": "cross-env WEB_PORT=5174 NOTES_PORT=8788 npm --workspace @notes/web run dev", - "dev:desktop": "cross-env WEB_PORT=5174 NOTES_PORT=8788 npm --workspace @notes/desktop run dev", + "dev:server": "env-cmd -e dev --no-override npm --workspace @notes/server run dev", + "dev:web": "env-cmd -e dev --no-override npm --workspace @notes/web run dev", + "dev:desktop": "env-cmd -e dev --no-override npm --workspace @notes/desktop run dev", "dev:all": "concurrently -n server,web,electron -c blue,green,yellow \"npm:dev:server\" \"npm:dev:web\" \"npm:dev:desktop\"", "build": "npm --workspace @notes/web run build", "build:server-bundle": "npm --workspace @notes/desktop run build:server-bundle", @@ -43,7 +43,7 @@ "@types/node": "^26.2.0", "7zip-bin": "^5.2.0", "concurrently": "^10.0.4", - "cross-env": "^10.1.0", + "env-cmd": "^11.0.0", "esbuild": "^0.28.2", "eslint": "^9.39.5", "eslint-plugin-import": "^2.31.0", diff --git a/playwright.config.ts b/playwright.config.ts index 8404946..3a00fdb 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -20,14 +20,14 @@ export default defineConfig({ projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }], webServer: [ { - command: "npm --workspace @notes/server run dev", + command: "npm run dev:server", url: SERVER_HEALTH, reuseExistingServer: !process.env.CI, timeout: 120_000, - env: { NOTES_TOME: "e2e-tome", NOTES_PORT: SERVER_PORT }, + env: { NOTES_TOME: "e2e-tome", NOTES_PORT: SERVER_PORT, WEB_PORT }, }, { - command: "npm --workspace @notes/web run dev", + command: "npm run dev:web", url: WEB_URL, reuseExistingServer: !process.env.CI, timeout: 120_000,