Skip to content

Commit

Permalink
fix(js): update outDir in runtime tsconfig files to match types e…
Browse files Browse the repository at this point in the history
…xport 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/<project name>`. 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 #
  • Loading branch information
leosvelperez authored Feb 28, 2025
1 parent b992e25 commit a5d2003
Show file tree
Hide file tree
Showing 19 changed files with 35 additions and 40 deletions.
4 changes: 2 additions & 2 deletions packages/expo/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/expo/src/generators/library/library.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
5 changes: 1 addition & 4 deletions packages/js/src/generators/library/library.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
}
);
Expand Down
4 changes: 1 addition & 3 deletions packages/js/src/utils/typescript/ts-solution-setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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/<project-name>".
outDir: joinPathFragments('out-tsc', projectRoot.split('/').at(-1)),
outDir: 'dist',
rootDir,
...compilerOptions,
};
Expand Down
4 changes: 2 additions & 2 deletions packages/nest/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/next/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -981,7 +981,7 @@ describe('app (legacy)', () => {
"module": "esnext",
"moduleResolution": "bundler",
"noEmit": true,
"outDir": "out-tsc/myapp",
"outDir": "dist",
"paths": {
"@/*": [
"./src/*",
Expand All @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions packages/next/src/generators/library/library.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions packages/node/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/nuxt/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/react-native/src/generators/library/library.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/react/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions packages/react/src/generators/host/host.rspack.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 2 additions & 2 deletions packages/react/src/generators/library/library.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,7 @@ describe('Remix Application', () => {
],
"module": "esnext",
"moduleResolution": "bundler",
"outDir": "out-tsc/myapp",
"outDir": "dist",
"resolveJsonModule": true,
"rootDir": ".",
"skipLibCheck": true,
Expand Down
4 changes: 2 additions & 2 deletions packages/vue/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/vue/src/generators/library/library.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down
4 changes: 2 additions & 2 deletions packages/web/src/generators/application/application.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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",
],
Expand Down

0 comments on commit a5d2003

Please sign in to comment.