@vitus-labs/tools-typescript
v2.8.0
Published
Shared TypeScript configuration presets.
Readme
@vitus-labs/tools-typescript
Shared TypeScript configuration presets.
Installation
bun add -d @vitus-labs/tools-typescriptPeer dependency: typescript 6.x or 7.x
Presets
The presets deliberately do not set include / exclude. TypeScript resolves
those paths relative to the config file that declares them, so a preset's
include would point inside node_modules. Always set them in your own
tsconfig.json, e.g. "include": ["src"] and "exclude": ["node_modules", "lib"]
(for Next.js: "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]).
lib — for libraries
Strict TypeScript config targeting ES2024 with bundler module resolution.
{
"extends": "@vitus-labs/tools-typescript/lib",
"include": ["src"]
}Key settings:
target: ES2024,module: Preserve,moduleResolution: Bundlerstrict: true,noUncheckedIndexedAccess: truejsx: react-jsxdeclaration: true,declarationMap: true,sourceMap: trueverbatimModuleSyntax: truetypes: ["node"]— override with"types": [](or your own list) for browser-only libraries without@types/node
node — for Node.js packages
{
"extends": "@vitus-labs/tools-typescript/node",
"include": ["src"]
}Key settings: module/moduleResolution: NodeNext, rewriteRelativeImportExtensions: true, types: ["node"], strict: true.
nextjs — for Next.js applications
{
"extends": "@vitus-labs/tools-typescript/nextjs",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"]
}Key settings:
target: ES2024,module: ESNext,moduleResolution: Bundlerstrict: true,noUncheckedIndexedAccess: truejsx: preserve(Next.js handles the JSX transform)incremental: true
License
MIT
