@codecompose/typescript-config

中文文档
5.1.0发布于 2026/05/22MIT零依赖构建来源已验证近 30 天下载 1.4万

意见重用类型脚本配置

中文使用文档
文档目录11 节
  1. 安装
  2. 使用量
  3. 可用的配置
  4. V5 — 运行时间明确的预设
  5. V3 — 类型脚本 6
  6. 从v2 移动
  7. 假设 Bundler 输出
  8. 递增结构
  9. 项目参考文献
  10. 向国家预防机制公布
  11. 洞穴

类型字符配置

联合国 typescript-config.codecompose.dev 键入脚本

观想和可再用 TypeScript 配置,面向在单发和单发寄存器的现代构建工具.

  • 仅使用 TypeScript 编译器进行类型检查 (*)
  • 假设您的捆绑输出代码、 源图和类型声明 (*)
  • 需要类型脚本 6.0 或更晚
  • 建立在 TS6 的严格默认之上, 并带有额外的严格性 : noUncheckedIndexedAccess, (中文(简体) ), noImplicitOverride,以及 erasableSyntaxOnly
  • 假设 src 财务报告和审定财务报表 dist 目录
  • 提供 ~/, (中文(简体) ), @/,以及 #/ 路径的别名 src
  • 用途 ${configDir} 每个项目的零配置

(*)共享-图书馆和共享-图书馆-反应配置是一个例外:它们能够 composite, (中文(简体) ), declaration,以及 declarationMap 因为项目引用需要TypeScript来发布声明. 您的捆绑器仍然处理 JavaScript 输出 .

要成功使用,你需要一个现代化的捆绑机,比如 s您可以检查 类型标记- monorepo 锅炉板,用于以tsdown为单位的现代单列布设置的活例.

这些配置也兼容 走开,TypeScript编译器的本地 Go 端口.

安装

npm i @codecompose/typescript-config -D

使用量

{
  "extends": "@codecompose/typescript-config/base"
}

通常,除了 extends。 。 。 .

可用的配置

  • base - 任何不具体的
  • library ——独立库(不属于单列库)
  • library-isomorphic ——针对多个Web标准运行时间的独立库(浏览器,RN,工人,德诺,邦,节点)
  • library-react ——独立反应组件库(不属于单列)
  • shared-library - 共享的独家图书馆
  • shared-library-react —— 共享的单列回放组件库
  • app-nextjs - Next.js 应用程序
  • service-node ——后端服务运行于Node.js
  • service-worker ——Cloudflare工人的后端服务运行
  • infra-pulumi · 与Pulumi的基础设施编码
  • infra-alchemy 与Alchemy的基础设施编码

对于其他项目类型,如CLI或E2E应用程序,您可以使用 base 配置 .

V5 — 运行时间明确的预设

V5重塑了运行时间特定预设,使其目标环境在名称上明确,并增加了Cloudflare Workers,Alchemy和同位素库的新预设.

关于版本号的说明: V4因出版-工作流程事故被跳出 package.json 被撞伤到 4.0.0 合并前的分行,然后工作流程运行 major 顶起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起起 5.0.0。发布 5.0.0 原打算释放的 4.0.0;没有 4.x 线条.

重命名( 内容不变 —— 只有已移动的导入路径 ) :

V3 切入点V5 切入点
@codecompose/typescript-config/service@codecompose/typescript-config/service-node
@codecompose/typescript-config/infra@codecompose/typescript-config/infra-pulumi

新建预设 :

  • service-worker 形状与 service-node 不过 types: ["@cloudflare/workers-types"] 改为 ["node"]。 。 。 .
  • infra-alchemy 用于 炼金术 项目: 项目根上的文件, allowImportingTsExtensions,以及 @types/node。 。 。 .
  • library-isomorphic —— 说 library 随着DOM lib 加上如此全球 fetch编号 :Response编号 :Headers 输入时没有漏出特定运行时间的约束.

这个 {category}-{runtime} 形状组合在字母列表中的相关预设,并为今后的运行留有空间(service-bun, (中文(简体) ), service-deno, (中文(简体) ), infra-terraform等),不再作更名. 无资格者 service 财务报告和审定财务报表 infra 切入点被去除——没有倒置别名.

V3 — 类型脚本 6

V3是需要TypeScript 6.0或更晚的大型发布.

TypeScript 6 将其默认值与这个软件包一直遵循的严格逐一默认的哲学相一致. 因此,基础配置现在更加精简——现在TS6默认的选项(strict, (中文(简体) ), esModuleInterop已删除,以及 isolatedModules 被删除,因为 verbatimModuleSyntax。 。 。 .

TS6 也默认 types 改为 [],含义 @types/* 软件包不再自动包含。 如果您的工程依赖于环境类型包, 您需要明确添加到您的 tsconfig 中 :

{
  "extends": "@codecompose/typescript-config/base",
  "compilerOptions": {
    "types": ["node"]
  }
}

这与严格的违约哲学相一致——类型依赖应该明确.

关于从v2升级的用户,见下文"迁移指南".

从v2 移动

  • 需要类型脚本 6 ——与TS5没有后向兼容性
  • 删除 strict: true ——现在是 TS6 默认
  • 删除 esModuleInterop: true 安全交叉行为总是在TS6中进行
  • 删除 isolatedModules: true ——隐含的 verbatimModuleSyntax
  • 删除已注释 baseUrl ——在TS6中贬值
  • 需要采取的行动: 如果你依赖自动包含 @types/* 软件包,添加 "types": ["node"] (或任何你需要的类型) 到你的tsconfig

假设 Bundler 输出

输出像源图和类型声明一样的输出被禁用,因为人们假设你的捆绑者会处理它. 共享- library 和 共享- library- react configs 是一个例外—— 它们启用 declaration 财务报告和审定财务报表 declarationMap 因为 composite 模式要求它用于工程参考.

递增结构

所有配置都有 incremental 设置为 true根据我的经验,它可以 发生时,建筑会被卡在无边形中, 你需要删除 tsconfig.tsbuildinfo 准备让事情再次发生 为此,我 建议根据 del-cli数字 :

"clean": "del-cli dist tsconfig.tsbuildinfo"

项目参考文献

共享图书馆和共享图书馆反应配置 composite 设置为 true。对于TypeScript“项目引用”来说,需要在单列中工作。 它们提供IDE去定义,而无需输出模块输出.

在实践中,这意味着如果在共享软件包中更改代码,消耗的应用程序或库会接取这些更改,而不需要在共享软件包上设置一个监视任务来触发每次更改上的重建.

没有项目的参考文献,消费代码只会看到 dist 共享软件包的输出.

如果你喜欢在没有项目参考的情况下工作,你应该设置你的捆绑器也 输出声明地图但不是所有的捆绑工都能做到这一点.

向国家预防机制公布

如果您发布您的软件包,建议包含类型脚本源和类型声明地图. 这使得消费者可以直接跳入源代码,这对于整体的可读性和学习性是巨大的.

要导出您 dist 输出旁边的源文件, 您定义 files 字段中的字段 ["src", "dist"]。 。 。 .

洞穴

Next.js v15 要求您明确配置 include。如果只给出"src",它会在启动时注入自己的类型。 我想将来情况会好转.

基础配置包括: "${configDir}/src/**/*.json" 并行 "${configDir}/src" 因为类型脚本 include 只取支持的扩展名( e).ts, (中文(简体) ), .tsx当给定目录路径时。 如果你超过 include 在您的工程 tsconfig 中, 如果您导入 JSON 文件, 请确保保留 JSON glob .

版本与发布记录

@codecompose/typescript-config 共发布 33 个版本,首次发布于 2024/09/20;过去 12 个月发布了 11 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
5.1.0latest2026/05/225 个月前
5.0.02026/05/225 个月前
3.2.02026/04/077 个月前
3.1.02026/03/277 个月前
3.0.22026/03/157 个月前
3.0.12026/03/157 个月前

其他发布通道:next → 3.0.0-0。

关于 @codecompose/typescript-config 的常见问题

@codecompose/typescript-config 是什么?

意见重用类型脚本配置

如何安装 @codecompose/typescript-config?

在项目目录运行 npm install @codecompose/typescript-config,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:typescript(>=6.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@codecompose/typescript-config 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/codecompose__typescript-config 是否存在。

@codecompose/typescript-config 可以商用吗?

@codecompose/typescript-config 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@codecompose/typescript-config 的下载量有多少?

根据 npm 官方下载统计,@codecompose/typescript-config 在 2026/10/10 – 2026/11/08 这 30 天内被下载 13,817 次,日均约 461 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@codecompose/typescript-config 还在维护吗?

最新版本 5.1.0 发布于 2026/05/22(5 个月前);至今共发布 33 个版本,其中过去 12 个月发布了 11 个;首次发布于 2024/09/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。