@boltz.one/typescript-config
v0.1.1
Published
TypeScript config dùng chung cho monorepo Boltz One: base, library, app, nextjs, react-library
Downloads
357
Readme
@boltz.one/typescript-config
Bộ tsconfig.json cơ sở dùng chung cho hệ sinh thái Boltz One. Mỗi project chỉ
cần extends đúng một preset rồi bổ sung tùy chỉnh riêng (paths, types, …).
Cài đặt
bun add -d @boltz.one/typescript-config typescript
# hoặc: npm i -D @boltz.one/typescript-config typescriptCác preset khả dụng
| Entry point | Display | Dùng cho |
| --- | --- | --- |
| @boltz.one/typescript-config/base.json | — | Nền tảng strict cho mọi project. Các preset khác đều kế thừa từ đây. |
| @boltz.one/typescript-config/library.json | Node Library | Thư viện build ra dist (emit .d.ts + sourcemap, rootDir: src). |
| @boltz.one/typescript-config/app.json | Node App | App/service Node chạy server (emit dist, types: ["node"]). |
| @boltz.one/typescript-config/nextjs.json | — | App Next.js (moduleResolution: Bundler, jsx: preserve, noEmit, plugin next). |
| @boltz.one/typescript-config/react-library.json | — | Thư viện React (jsx: react-jsx). |
Mỗi preset có hai dạng entry point tương đương: có và không hậu tố
.json(vd.../libraryvà.../library.json). Khi dùng trong khóaextendscủatsconfig.jsonnên dùng dạng có.json.
Điểm chính của base.json
strict: true, noUncheckedIndexedAccess, isolatedModules, moduleDetection: force,
module/moduleResolution: NodeNext, target/lib: ES2022 (+ DOM), declaration +
declarationMap, esModuleInterop, resolveJsonModule, skipLibCheck.
Sử dụng
Thư viện Node:
// tsconfig.json
{
"extends": "@boltz.one/typescript-config/library.json",
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}App/service Node:
{
"extends": "@boltz.one/typescript-config/app.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
},
"include": ["src/**/*"]
}Thư viện React:
{
"extends": "@boltz.one/typescript-config/react-library.json",
"include": ["src"]
}App Next.js:
{
"extends": "@boltz.one/typescript-config/nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}License
MIT
