简体中文 | English
Shared TypeScript configuration for Vue 3, UniApp, and general library development.
pnpm add -D @defchigga/tsconfig typescript
# or
npm install -D @defchigga/tsconfig typescriptAdd one of the available configurations to your tsconfig.json.
The base configuration providing strict type checking and modern module resolution (bundler).
{
"extends": "@defchigga/tsconfig/tsconfig.json"
}For Node.js scripts or configuration files (like vite.config.ts, vitest.config.ts).
{
"extends": "@defchigga/tsconfig/tsconfig.node.json",
"include": [
"vite.config.*",
"vitest.config.*",
"cypress.config.*",
"nightwatch.conf.*",
"playwright.config.*",
"eslint.config.*"
]
}For standard Vue 3 web applications.
{
"extends": "@defchigga/tsconfig/tsconfig.app.json",
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
"exclude": ["src/**/__tests__/*"]
}Specialized configuration for UniApp development, including types for @dcloudio/types, @uni-helper, and WeChat Miniprogram.
{
"extends": "@defchigga/tsconfig/tsconfig.uni.json",
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
"exclude": ["src/**/__tests__/*"]
}For building libraries. It enables declaration file generation (declaration: true) and skips library checks.
{
"extends": "@defchigga/tsconfig/tsconfig.lib.json",
"include": ["src/**/*"]
}For testing with Vitest.
{
"extends": "@defchigga/tsconfig/tsconfig.vitest.json",
"include": ["src/**/__tests__/*", "env.d.ts"],
"exclude": []
}If you prefer to separate configurations for different environments (e.g., app, node, test) using TypeScript Project References, your root tsconfig.json should look like this:
{
"files": [],
"references": [
{ "path": "./tsconfig.app.json" },
{ "path": "./tsconfig.node.json" },
{ "path": "./tsconfig.vitest.json" }
]
}- Strict by default: Enforces strict type checking for better code quality.
- Modern: Targets
ESNextand usesmoduleResolution: bundler. - Vue Ready: Includes necessary options for Vue 3 and Volar.
- UniApp Support: Built-in support for UniApp types.