From a5d20030dba5b9188d6e5ba30f8749c28da8cc4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leosvel=20P=C3=A9rez=20Espinosa?= Date: Fri, 28 Feb 2025 22:10:58 +0100 Subject: [PATCH] fix(js): update `outDir` in runtime tsconfig files to match `types` export in package.json (#30217) ## Current Behavior In the TS solution setup, several project generators produce the runtime tsconfig files (e.g. `tsconfig.lib.json`) with the `outDir` set to `out-tsc/`. This causes issues with the inferred `typecheck` task because the project `package.json` has the `types` export pointing to `dist/...`, which wouldn't be produced by `typecheck`. ## Expected Behavior In the TS solution setup, project generators should produce the runtime tsconfig files (e.g. `tsconfig.lib.json`) with the `outDir` set to a path (`dist`) that matches the value in the project `package.json`'s `types` export. ## Related Issue(s) Fixes # --- packages/expo/src/generators/application/application.spec.ts | 4 ++-- packages/expo/src/generators/library/library.spec.ts | 4 ++-- .../express/src/generators/application/application.spec.ts | 4 ++-- packages/js/src/generators/library/library.ts | 5 +---- packages/js/src/utils/typescript/ts-solution-setup.ts | 4 +--- packages/nest/src/generators/application/application.spec.ts | 4 ++-- packages/next/src/generators/application/application.spec.ts | 4 ++-- packages/next/src/generators/library/library.spec.ts | 4 ++-- packages/node/src/generators/application/application.spec.ts | 4 ++-- packages/nuxt/src/generators/application/application.spec.ts | 4 ++-- .../src/generators/application/application.spec.ts | 4 ++-- packages/react-native/src/generators/library/library.spec.ts | 4 ++-- .../react/src/generators/application/application.spec.ts | 4 ++-- packages/react/src/generators/host/host.rspack.spec.ts | 4 ++-- packages/react/src/generators/library/library.spec.ts | 4 ++-- .../src/generators/application/application.impl.spec.ts | 2 +- packages/vue/src/generators/application/application.spec.ts | 4 ++-- packages/vue/src/generators/library/library.spec.ts | 4 ++-- packages/web/src/generators/application/application.spec.ts | 4 ++-- 19 files changed, 35 insertions(+), 40 deletions(-) diff --git a/packages/expo/src/generators/application/application.spec.ts b/packages/expo/src/generators/application/application.spec.ts index b4f0298264..05acbf5ee5 100644 --- a/packages/expo/src/generators/application/application.spec.ts +++ b/packages/expo/src/generators/application/application.spec.ts @@ -400,9 +400,9 @@ describe('app', () => { "module": "esnext", "moduleResolution": "bundler", "noUnusedLocals": false, - "outDir": "out-tsc/my-app", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/my-app/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", ], diff --git a/packages/expo/src/generators/library/library.spec.ts b/packages/expo/src/generators/library/library.spec.ts index cef22923ea..35314e1d9e 100644 --- a/packages/expo/src/generators/library/library.spec.ts +++ b/packages/expo/src/generators/library/library.spec.ts @@ -552,9 +552,9 @@ describe('lib', () => { "jsx": "react-jsx", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/my-lib", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/my-lib/tsconfig.lib.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", "types": [ "node", ], diff --git a/packages/express/src/generators/application/application.spec.ts b/packages/express/src/generators/application/application.spec.ts index c2ce54def5..f8efdeb939 100644 --- a/packages/express/src/generators/application/application.spec.ts +++ b/packages/express/src/generators/application/application.spec.ts @@ -265,9 +265,9 @@ describe('app', () => { "compilerOptions": { "module": "nodenext", "moduleResolution": "nodenext", - "outDir": "out-tsc/myapp", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", "express", diff --git a/packages/js/src/generators/library/library.ts b/packages/js/src/generators/library/library.ts index 7686dd4339..ee718c6139 100644 --- a/packages/js/src/generators/library/library.ts +++ b/packages/js/src/generators/library/library.ts @@ -1031,10 +1031,7 @@ function createProjectTsConfigs( .map(([k, v]) => `${JSON.stringify(k)}: ${JSON.stringify(v)}`) .join(',\n '), tmpl: '', - outDir: - options.bundler === 'tsc' - ? 'dist' - : `out-tsc/${options.projectRoot.split('/').pop()}`, + outDir: 'dist', emitDeclarationOnly: options.bundler === 'tsc' ? false : true, } ); diff --git a/packages/js/src/utils/typescript/ts-solution-setup.ts b/packages/js/src/utils/typescript/ts-solution-setup.ts index c80aa1f84e..0aeeea281f 100644 --- a/packages/js/src/utils/typescript/ts-solution-setup.ts +++ b/packages/js/src/utils/typescript/ts-solution-setup.ts @@ -140,9 +140,7 @@ export function updateTsconfigFiles( json.compilerOptions = { ...json.compilerOptions, - // Make sure d.ts files from typecheck does not conflict with bundlers. - // Other tooling like jest write to "out-tsc/jest" to we just default to "out-tsc/". - outDir: joinPathFragments('out-tsc', projectRoot.split('/').at(-1)), + outDir: 'dist', rootDir, ...compilerOptions, }; diff --git a/packages/nest/src/generators/application/application.spec.ts b/packages/nest/src/generators/application/application.spec.ts index e453a96756..b2d68262eb 100644 --- a/packages/nest/src/generators/application/application.spec.ts +++ b/packages/nest/src/generators/application/application.spec.ts @@ -281,10 +281,10 @@ describe('application generator', () => { "experimentalDecorators": true, "module": "nodenext", "moduleResolution": "nodenext", - "outDir": "out-tsc/myapp", + "outDir": "dist", "rootDir": "src", "target": "es2021", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", ], diff --git a/packages/next/src/generators/application/application.spec.ts b/packages/next/src/generators/application/application.spec.ts index 695427e1fd..a5e44e3d33 100644 --- a/packages/next/src/generators/application/application.spec.ts +++ b/packages/next/src/generators/application/application.spec.ts @@ -981,7 +981,7 @@ describe('app (legacy)', () => { "module": "esnext", "moduleResolution": "bundler", "noEmit": true, - "outDir": "out-tsc/myapp", + "outDir": "dist", "paths": { "@/*": [ "./src/*", @@ -995,7 +995,7 @@ describe('app (legacy)', () => { "resolveJsonModule": true, "rootDir": "src", "strict": true, - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo", "types": [ "jest", "node", diff --git a/packages/next/src/generators/library/library.spec.ts b/packages/next/src/generators/library/library.spec.ts index 3a74083c7d..4180366bc3 100644 --- a/packages/next/src/generators/library/library.spec.ts +++ b/packages/next/src/generators/library/library.spec.ts @@ -187,9 +187,9 @@ describe('next library', () => { "jsx": "react-jsx", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/mylib", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/mylib/tsconfig.lib.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", "types": [ "node", "@nx/react/typings/cssmodule.d.ts", diff --git a/packages/node/src/generators/application/application.spec.ts b/packages/node/src/generators/application/application.spec.ts index c0b2b702b2..a8f29965b8 100644 --- a/packages/node/src/generators/application/application.spec.ts +++ b/packages/node/src/generators/application/application.spec.ts @@ -667,9 +667,9 @@ describe('app', () => { "compilerOptions": { "module": "nodenext", "moduleResolution": "nodenext", - "outDir": "out-tsc/myapp", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", ], diff --git a/packages/nuxt/src/generators/application/application.spec.ts b/packages/nuxt/src/generators/application/application.spec.ts index 5ff67d9d23..1caf62e7e1 100644 --- a/packages/nuxt/src/generators/application/application.spec.ts +++ b/packages/nuxt/src/generators/application/application.spec.ts @@ -286,10 +286,10 @@ describe('app', () => { "jsxImportSource": "vue", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/myapp", + "outDir": "dist", "resolveJsonModule": true, "rootDir": "src", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", }, "exclude": [ "out-tsc", diff --git a/packages/react-native/src/generators/application/application.spec.ts b/packages/react-native/src/generators/application/application.spec.ts index 678fa25c18..c0b0552c62 100644 --- a/packages/react-native/src/generators/application/application.spec.ts +++ b/packages/react-native/src/generators/application/application.spec.ts @@ -326,9 +326,9 @@ describe('app', () => { "module": "esnext", "moduleResolution": "bundler", "noUnusedLocals": false, - "outDir": "out-tsc/my-app", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/my-app/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", ], diff --git a/packages/react-native/src/generators/library/library.spec.ts b/packages/react-native/src/generators/library/library.spec.ts index f7faceabf0..1764409e9b 100644 --- a/packages/react-native/src/generators/library/library.spec.ts +++ b/packages/react-native/src/generators/library/library.spec.ts @@ -525,9 +525,9 @@ describe('lib', () => { "jsx": "react-jsx", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/my-lib", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/my-lib/tsconfig.lib.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", "types": [ "node", ], diff --git a/packages/react/src/generators/application/application.spec.ts b/packages/react/src/generators/application/application.spec.ts index 7a5ba5b093..2bdb712b9e 100644 --- a/packages/react/src/generators/application/application.spec.ts +++ b/packages/react/src/generators/application/application.spec.ts @@ -1364,9 +1364,9 @@ describe('app', () => { ], "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/myapp", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", "@nx/react/typings/cssmodule.d.ts", diff --git a/packages/react/src/generators/host/host.rspack.spec.ts b/packages/react/src/generators/host/host.rspack.spec.ts index fad69b5ffc..91e38299ad 100644 --- a/packages/react/src/generators/host/host.rspack.spec.ts +++ b/packages/react/src/generators/host/host.rspack.spec.ts @@ -509,9 +509,9 @@ describe('hostGenerator', () => { ], "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/myapp", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", "@nx/react/typings/cssmodule.d.ts", diff --git a/packages/react/src/generators/library/library.spec.ts b/packages/react/src/generators/library/library.spec.ts index 5e32e1b939..f8ceea08d9 100644 --- a/packages/react/src/generators/library/library.spec.ts +++ b/packages/react/src/generators/library/library.spec.ts @@ -1052,9 +1052,9 @@ module.exports = withNx( "jsx": "react-jsx", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/mylib", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/mylib/tsconfig.lib.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", "types": [ "node", "@nx/react/typings/cssmodule.d.ts", diff --git a/packages/remix/src/generators/application/application.impl.spec.ts b/packages/remix/src/generators/application/application.impl.spec.ts index e3426402b3..945c8c6893 100644 --- a/packages/remix/src/generators/application/application.impl.spec.ts +++ b/packages/remix/src/generators/application/application.impl.spec.ts @@ -548,7 +548,7 @@ describe('Remix Application', () => { ], "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/myapp", + "outDir": "dist", "resolveJsonModule": true, "rootDir": ".", "skipLibCheck": true, diff --git a/packages/vue/src/generators/application/application.spec.ts b/packages/vue/src/generators/application/application.spec.ts index a539af3b54..ac312ef387 100644 --- a/packages/vue/src/generators/application/application.spec.ts +++ b/packages/vue/src/generators/application/application.spec.ts @@ -276,10 +276,10 @@ describe('application generator', () => { "jsxImportSource": "vue", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/test", + "outDir": "dist", "resolveJsonModule": true, "rootDir": "src", - "tsBuildInfoFile": "out-tsc/test/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "vite/client", ], diff --git a/packages/vue/src/generators/library/library.spec.ts b/packages/vue/src/generators/library/library.spec.ts index 19b071d0bf..e86afabf8b 100644 --- a/packages/vue/src/generators/library/library.spec.ts +++ b/packages/vue/src/generators/library/library.spec.ts @@ -606,10 +606,10 @@ module.exports = [ "jsxImportSource": "vue", "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/my-lib", + "outDir": "dist", "resolveJsonModule": true, "rootDir": "src", - "tsBuildInfoFile": "out-tsc/my-lib/tsconfig.lib.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo", "types": [ "vite/client", ], diff --git a/packages/web/src/generators/application/application.spec.ts b/packages/web/src/generators/application/application.spec.ts index e5fdf3356b..bac0de2447 100644 --- a/packages/web/src/generators/application/application.spec.ts +++ b/packages/web/src/generators/application/application.spec.ts @@ -801,9 +801,9 @@ describe('app', () => { "compilerOptions": { "module": "esnext", "moduleResolution": "bundler", - "outDir": "out-tsc/myapp", + "outDir": "dist", "rootDir": "src", - "tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo", + "tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo", "types": [ "node", ],