nitro icon indicating copy to clipboard operation
nitro copied to clipboard

TypeScript errors in freshly created Nitro v2 project

Open hupf opened this issue 7 months ago • 4 comments

Environment

Node.js 22.11 Nitro 2.11.12

Reproduction

Create a new project with:

pnpm dlx giget@latest nitro nitro-app --install

Run type checking with:

pnpm exec tsc --noEmit -p ./tsconfig.json

Describe the bug

Although it is a fresh project, there are a lot of TypeScript errors initially:

Found 54 errors in 40 files.

Errors  Files
     1  node_modules/.pnpm/@[email protected]/node_modules/@types/node/process.d.ts:562
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/better-sqlite3.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/bun-sqlite.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/cloudflare-d1.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/libsql/core.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/libsql/http.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/libsql/node.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/libsql/web.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/mysql2.d.ts:1
     2  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/pglite.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/planetscale.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/postgresql.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/db0/dist/connectors/sqlite3.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/h3/dist/index.d.ts:29
     1  node_modules/.pnpm/[email protected]/node_modules/listhen/dist/index.d.ts:8
     2  node_modules/.pnpm/[email protected]/node_modules/nitropack/dist/presets/cloudflare/types.d.ts:1
     2  node_modules/.pnpm/[email protected]/node_modules/nitropack/dist/presets/firebase/types.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/nitropack/dist/runtime/internal/context.d.ts:2
     1  node_modules/.pnpm/[email protected]/node_modules/nitropack/dist/shared/nitro.BULiwDWR.d.ts:27
     1  node_modules/.pnpm/[email protected]/node_modules/ofetch/dist/shared/ofetch.d0b3d489.d.mts:1
     1  node_modules/.pnpm/[email protected]/node_modules/unimport/dist/index.d.mts:8
     6  node_modules/.pnpm/[email protected]/node_modules/unplugin/dist/index.d.ts:2
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/azure-app-configuration.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/azure-cosmos.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/azure-key-vault.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/azure-storage-blob.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/azure-storage-table.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/capacitor-preferences.d.ts:4
     2  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/cloudflare-kv-binding.d.ts:2
     2  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/cloudflare-r2-binding.d.ts:2
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/deno-kv-node.d.ts:1
     3  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/deno-kv.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/http.d.ts:5
     2  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/mongodb.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/netlify-blobs.d.ts:18
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/planetscale.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/uploadthing.d.ts:1
     1  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/upstash.d.ts:1
     2  node_modules/.pnpm/[email protected][email protected][email protected]/node_modules/unstorage/drivers/vercel-kv.d.ts:1
     1  node_modules/.pnpm/[email protected]/node_modules/webpack-virtual-modules/lib/index.d.ts:1

The question is, how can actual TypeScript errors be detected? What command can we run in a pipeline to check types? Also a pnpm build does not report any TypeScript errors if they exist...

Additional context

No response

Logs


hupf avatar May 23 '25 09:05 hupf

So this is an important question -

You hadn't exclude node_modules/ ?

gxres042 avatar May 24 '25 00:05 gxres042

So this is an important question -

You hadn't exclude node_modules/ ?

@gxres042 I've tried to add "exclude": ["./node_modules/**/*"] to ./tsconfig.json or even "exclude": ["../../node_modules/**/*"] to the generated ./.nitro/types/tsconfig.json file, without any success. I see that ./.nitro/types/tsconfig.json does include all directories:

  "include": [
    "./nitro.d.ts",
    "../../**/*",
    "../../server/**/*"
  ]

...but even if I remove "../../**/*", from the includes, the errors are present. I don't know what the problem is – it irritates me, that a newly created project has TypeScript errors... am I doing something wrong?

hupf avatar May 24 '25 14:05 hupf

Well my mistake. I know where the problem is.

gxres042 avatar May 24 '25 15:05 gxres042

@gxres042 Thanks 🙏 So as a workaround, skipLibCheck: true, can be added to tsconfig.json

hupf avatar May 26 '25 15:05 hupf