From 06aafe96eab451232e3dea6c69384bc7210edfcd Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 16 Oct 2026 20:16:24 +0800 Subject: [PATCH 1/2] fix(create-rstack): preserve Nx template environment behavior --- packages/create-rstack/template-nx/.env | 2 ++ packages/create-rstack/template-nx/README.md | 2 ++ packages/create-rstack/template-nx/nx.json | 13 ++++++++++--- packages/create-rstack/tests/create.test.ts | 3 +++ scripts/dictionary.txt | 1 + 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 packages/create-rstack/template-nx/.env diff --git a/packages/create-rstack/template-nx/.env b/packages/create-rstack/template-nx/.env new file mode 100644 index 00000000..1dc00cae --- /dev/null +++ b/packages/create-rstack/template-nx/.env @@ -0,0 +1,2 @@ +# Let Rstack load environment files for the current command. +NX_LOAD_DOT_ENV_FILES=false diff --git a/packages/create-rstack/template-nx/README.md b/packages/create-rstack/template-nx/README.md index d27364a1..275fbff0 100644 --- a/packages/create-rstack/template-nx/README.md +++ b/packages/create-rstack/template-nx/README.md @@ -25,6 +25,8 @@ Run from the repository root: Nx discovers projects and tasks from workspace package manifests. Build and test tasks are cached, and dependencies are built first. +The root `.env` disables Nx's environment-file loading so Rstack can load each project's environment files with the correct mode and priority. + Run `pnpm run build` before `pnpm run check`. Use `pnpm exec nx graph` to explore the project graph. diff --git a/packages/create-rstack/template-nx/nx.json b/packages/create-rstack/template-nx/nx.json index 3ccb7eda..9360f5dd 100644 --- a/packages/create-rstack/template-nx/nx.json +++ b/packages/create-rstack/template-nx/nx.json @@ -1,17 +1,23 @@ { "$schema": "./node_modules/nx/schemas/nx-schema.json", "namedInputs": { - "default": ["{projectRoot}/**/*", "sharedGlobals"], + "default": [ + "{projectRoot}/**/*", + { "fileset": "{projectRoot}/.env*", "includeIgnored": true }, + "sharedGlobals" + ], "sharedGlobals": [ "{workspaceRoot}/tsconfig.base.json", "{workspaceRoot}/rstack.config.ts", - "{workspaceRoot}/pnpm-workspace.yaml" + "{workspaceRoot}/pnpm-workspace.yaml", + { "fileset": "{workspaceRoot}/.env*", "includeIgnored": true } ] }, "targetDefaults": { "build": { "dependsOn": ["^build"], "cache": true, + "inputs": ["default", "^default"], "outputs": ["{projectRoot}/dist"] }, "dev": { @@ -20,7 +26,8 @@ }, "test": { "dependsOn": ["^build"], - "cache": true + "cache": true, + "inputs": ["default", "^default"] } } } diff --git a/packages/create-rstack/tests/create.test.ts b/packages/create-rstack/tests/create.test.ts index 9200a995..67f79e2e 100644 --- a/packages/create-rstack/tests/create.test.ts +++ b/packages/create-rstack/tests/create.test.ts @@ -318,6 +318,9 @@ test.each(['turborepo', 'nx'])( 'apps/web/src/index.tsx', 'packages/ui/src/button.tsx', ]); + if (template === 'nx') { + await expectFiles(projectDirectory, ['.env', 'tsconfig.base.json']); + } }, ); diff --git a/scripts/dictionary.txt b/scripts/dictionary.txt index eeea93de..0ccff542 100644 --- a/scripts/dictionary.txt +++ b/scripts/dictionary.txt @@ -10,6 +10,7 @@ errexit esac esbenp extglob +fileset fnames huskyrc indentable From ae147e3a24f17cf6aa83e2034e3c24bf6bf5ffcb Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 16 Oct 2026 21:05:57 +0800 Subject: [PATCH 2/2] chore: split Nx environment cache fix into a separate PR --- packages/create-rstack/template-nx/nx.json | 13 +++---------- scripts/dictionary.txt | 1 - 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/packages/create-rstack/template-nx/nx.json b/packages/create-rstack/template-nx/nx.json index 9360f5dd..3ccb7eda 100644 --- a/packages/create-rstack/template-nx/nx.json +++ b/packages/create-rstack/template-nx/nx.json @@ -1,23 +1,17 @@ { "$schema": "./node_modules/nx/schemas/nx-schema.json", "namedInputs": { - "default": [ - "{projectRoot}/**/*", - { "fileset": "{projectRoot}/.env*", "includeIgnored": true }, - "sharedGlobals" - ], + "default": ["{projectRoot}/**/*", "sharedGlobals"], "sharedGlobals": [ "{workspaceRoot}/tsconfig.base.json", "{workspaceRoot}/rstack.config.ts", - "{workspaceRoot}/pnpm-workspace.yaml", - { "fileset": "{workspaceRoot}/.env*", "includeIgnored": true } + "{workspaceRoot}/pnpm-workspace.yaml" ] }, "targetDefaults": { "build": { "dependsOn": ["^build"], "cache": true, - "inputs": ["default", "^default"], "outputs": ["{projectRoot}/dist"] }, "dev": { @@ -26,8 +20,7 @@ }, "test": { "dependsOn": ["^build"], - "cache": true, - "inputs": ["default", "^default"] + "cache": true } } } diff --git a/scripts/dictionary.txt b/scripts/dictionary.txt index 0ccff542..eeea93de 100644 --- a/scripts/dictionary.txt +++ b/scripts/dictionary.txt @@ -10,7 +10,6 @@ errexit esac esbenp extglob -fileset fnames huskyrc indentable