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/<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 #
This commit is contained in:
parent
b992e2586b
commit
a5d20030db
@ -400,9 +400,9 @@ describe('app', () => {
|
|||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"noUnusedLocals": false,
|
"noUnusedLocals": false,
|
||||||
"outDir": "out-tsc/my-app",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/my-app/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -552,9 +552,9 @@ describe('lib', () => {
|
|||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/my-lib",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/my-lib/tsconfig.lib.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -265,9 +265,9 @@ describe('app', () => {
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "nodenext",
|
"module": "nodenext",
|
||||||
"moduleResolution": "nodenext",
|
"moduleResolution": "nodenext",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
"express",
|
"express",
|
||||||
|
|||||||
@ -1031,10 +1031,7 @@ function createProjectTsConfigs(
|
|||||||
.map(([k, v]) => `${JSON.stringify(k)}: ${JSON.stringify(v)}`)
|
.map(([k, v]) => `${JSON.stringify(k)}: ${JSON.stringify(v)}`)
|
||||||
.join(',\n '),
|
.join(',\n '),
|
||||||
tmpl: '',
|
tmpl: '',
|
||||||
outDir:
|
outDir: 'dist',
|
||||||
options.bundler === 'tsc'
|
|
||||||
? 'dist'
|
|
||||||
: `out-tsc/${options.projectRoot.split('/').pop()}`,
|
|
||||||
emitDeclarationOnly: options.bundler === 'tsc' ? false : true,
|
emitDeclarationOnly: options.bundler === 'tsc' ? false : true,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@ -140,9 +140,7 @@ export function updateTsconfigFiles(
|
|||||||
|
|
||||||
json.compilerOptions = {
|
json.compilerOptions = {
|
||||||
...json.compilerOptions,
|
...json.compilerOptions,
|
||||||
// Make sure d.ts files from typecheck does not conflict with bundlers.
|
outDir: 'dist',
|
||||||
// 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)),
|
|
||||||
rootDir,
|
rootDir,
|
||||||
...compilerOptions,
|
...compilerOptions,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -281,10 +281,10 @@ describe('application generator', () => {
|
|||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"module": "nodenext",
|
"module": "nodenext",
|
||||||
"moduleResolution": "nodenext",
|
"moduleResolution": "nodenext",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"target": "es2021",
|
"target": "es2021",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -981,7 +981,7 @@ describe('app (legacy)', () => {
|
|||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": [
|
"@/*": [
|
||||||
"./src/*",
|
"./src/*",
|
||||||
@ -995,7 +995,7 @@ describe('app (legacy)', () => {
|
|||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"jest",
|
"jest",
|
||||||
"node",
|
"node",
|
||||||
|
|||||||
@ -187,9 +187,9 @@ describe('next library', () => {
|
|||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/mylib",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/mylib/tsconfig.lib.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
"@nx/react/typings/cssmodule.d.ts",
|
"@nx/react/typings/cssmodule.d.ts",
|
||||||
|
|||||||
@ -667,9 +667,9 @@ describe('app', () => {
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "nodenext",
|
"module": "nodenext",
|
||||||
"moduleResolution": "nodenext",
|
"moduleResolution": "nodenext",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -286,10 +286,10 @@ describe('app', () => {
|
|||||||
"jsxImportSource": "vue",
|
"jsxImportSource": "vue",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
},
|
},
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"out-tsc",
|
"out-tsc",
|
||||||
|
|||||||
@ -326,9 +326,9 @@ describe('app', () => {
|
|||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"noUnusedLocals": false,
|
"noUnusedLocals": false,
|
||||||
"outDir": "out-tsc/my-app",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/my-app/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -525,9 +525,9 @@ describe('lib', () => {
|
|||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/my-lib",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/my-lib/tsconfig.lib.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -1364,9 +1364,9 @@ describe('app', () => {
|
|||||||
],
|
],
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
"@nx/react/typings/cssmodule.d.ts",
|
"@nx/react/typings/cssmodule.d.ts",
|
||||||
|
|||||||
@ -509,9 +509,9 @@ describe('hostGenerator', () => {
|
|||||||
],
|
],
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
"@nx/react/typings/cssmodule.d.ts",
|
"@nx/react/typings/cssmodule.d.ts",
|
||||||
|
|||||||
@ -1052,9 +1052,9 @@ module.exports = withNx(
|
|||||||
"jsx": "react-jsx",
|
"jsx": "react-jsx",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/mylib",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/mylib/tsconfig.lib.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
"@nx/react/typings/cssmodule.d.ts",
|
"@nx/react/typings/cssmodule.d.ts",
|
||||||
|
|||||||
@ -548,7 +548,7 @@ describe('Remix Application', () => {
|
|||||||
],
|
],
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"rootDir": ".",
|
"rootDir": ".",
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
|
|||||||
@ -276,10 +276,10 @@ describe('application generator', () => {
|
|||||||
"jsxImportSource": "vue",
|
"jsxImportSource": "vue",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/test",
|
"outDir": "dist",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/test/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"vite/client",
|
"vite/client",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -606,10 +606,10 @@ module.exports = [
|
|||||||
"jsxImportSource": "vue",
|
"jsxImportSource": "vue",
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/my-lib",
|
"outDir": "dist",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/my-lib/tsconfig.lib.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.lib.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"vite/client",
|
"vite/client",
|
||||||
],
|
],
|
||||||
|
|||||||
@ -801,9 +801,9 @@ describe('app', () => {
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"outDir": "out-tsc/myapp",
|
"outDir": "dist",
|
||||||
"rootDir": "src",
|
"rootDir": "src",
|
||||||
"tsBuildInfoFile": "out-tsc/myapp/tsconfig.app.tsbuildinfo",
|
"tsBuildInfoFile": "dist/tsconfig.app.tsbuildinfo",
|
||||||
"types": [
|
"types": [
|
||||||
"node",
|
"node",
|
||||||
],
|
],
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user