三角盒工具链
全一开发工具链,让您脚手架项目,生成和管理配置,tsconfigs,自定义模板,同步,更改日志,CI,Vite+,迁移等等.
- 保存和使用模板(本地/远程) 所以,你不用脚手架 相同的项目一遍又一遍.
- 生成 配置类型, env变量, cli 旗帜, markdown 和 JSON schemas, 所以您的代码库保持一致性, 验证和有详细记录 .
- 扩展或设置 您的更改日志、 发布、 问题等的CI .
- 同步 您的整个项目,所以工作空间,文档和CI总是最新的.
- 插入 Vite / Vite+ 并精简您当前 Vite 设置的 DX .
见 特征清单。 。 。 .
见 变动情况 用于更新.
文件、指南和实例 工具链.deltabox.studio。 。 。 .
下面的视频和截图是VS代码扩展. 更多关于它的 工具链.deltabox.studio/指针/vscode。 。 。 .
目录
特征
- 配置驱动
- 配置生成器
- Vite / Vite+ 插件
- 更改日志发布( L)
- tsconfig 生成
- 供应商
- 模板
- 移徙
- 先编辑
- 摩诺雷波意识到
- 自动同步
详见 工具链.deltabox.studio。 。 。 .
安装
# as a dev dependency in the project you want to manage
yarn add -D @deltabox/toolchain
# or for global usage
npm install -g @deltabox/toolchain
包裹暴露了一个二进制, dbx数字 :
yarn dbx --help
快速启动
# 1. Write a dbx.config.ts for the current project
dbx project:config
# 2. Generate / refresh every managed file (adds .dbx/toolchain/manifest.json)
dbx sync
# 3. Verify in CI — fails when files are out of date
dbx sync --check
最小配置 :
import { defineConfig } from '@deltabox/toolchain';
export default defineConfig({
toolchain: {
project: { type: 'monorepo-root', name: 'acme', scope: '@acme' },
changelog: { workflows: { ci: true, release: true } },
tsconfig: { refs: true },
biome: true,
vite: { fmt: { semi: true, singleQuote: true } },
},
});
这个 @deltabox/toolchain 设置在 toolchain 键。 每个区
还有 通过存在选择进入数字 : section: true 以便它以缺省的形式出现,
section: false 关闭它,并 section: { ... } 配置它.
见 配置参考。 。 。 .
配置生成器
同样的"Zod-First"(Zod-First approach)赋予了独立配置引擎的权力. 说说你的
配置一次并生成 .env.example一个JSON Schema,一个打分参考,TS
类型和来自它的CLI旗帜——没有手持可漂移的文件:
import { z } from 'zod';
import { createConfigEngine } from '@deltabox/toolchain/config';
export const engine = createConfigEngine({
scopes: {
server: {
zodSchema: z.object({
port: z.number().default(3000).meta({ env: 'MYAPP_PORT' }),
}),
},
},
envPrefix: 'MYAPP_',
baseGroup: 'base',
root: process.cwd(),
});
await engine.writeJsonSchema({ output: 'config.schema.json' });
engine.writeEnvFile({ output: '.env.example' });
engine.writeMarkdown({ outDir: 'docs/reference/configuration' });
它还生成 TypeScript 类型——与 jsdoc 从
.describe(),其中结合物和嵌入物保持名称而不是
内嵌 :
engine.writeConfigTypes({ outputDir: 'types' });
// types/server.ts
export interface ServerConfig {
/** HTTP port. */
port?: number;
}
在运行时间,同一个包装回—— parseEnvTree 折叠 PREFIX_*
变量输入一棵树,输入的存取器读取它(schema验证只是
(单位:千美元) .parse() 离开:
import { envInt, envString, parseEnvTree } from '@deltabox/toolchain/config';
const tree = parseEnvTree(process.env, 'MYAPP_');
const port = envInt(tree, 'port', 3000);
const host = envString(tree, 'host', '0.0.0.0');
见 配置生成器 指南 装入, 超越并验证配置 .
工具链以这种方式生成自己的配置类型——见
packages/shared/src/config-types.ts 编辑 配置生成器
指南。 。 。 .
configCommands({ engine }) 也暴露了与 config:*
命令您自己的 CLI。 见 配置生成器
指南。 。 。 .
Vite / Vite+ 插件
@deltabox/toolchain 船载 Vite 插件, 因此 Vite( 或 Vite+) 项目可以运行
dbx 作为其管道的一部分——没有单独的 dbx sync 步骤 :
// vite.config.ts
import { defineConfig } from 'vite'; // or 'vite-plus'
import { dbx, DBX_TASKS } from '@deltabox/toolchain/vite';
export default defineConfig({
plugins: [dbx()],
run: { tasks: { ...DBX_TASKS } },
// your usual Vite / Vite+ config
});
- 这个
dbx()插件运行dbx sync在 dev 服务器/ 构建之前, 或dbx sync --check在 CI 中( 当生成文件退出时, 构建失败) 日期),当 adbx.config.*编号 :tsconfig.*.json输入变化. run: { tasks: { ...DBX_TASKS } }额外暴露vp run dbx:sync编号 :vp run dbx:check(视频+读取)run.tasks从静态配置中 插件无法添加). 放下枪run如果您不想完成这些任务, 则屏蔽 .
见 提供者指南。 。 。 .
国 际
访问 CLI 文档 学习更多.
注意: 与工程相撞并装入其命令 dbx.config.ts 首先,这样
除非在命令行上被推翻,否则将适用由配置产生的默认值.
程序化 API
import { defineConfig, loadToolchainConfig, runSync, defaultSyncTasks } from '@deltabox/toolchain';
const { config, tokens, projectType } = await loadToolchainConfig(process.cwd());
await runSync({ tasks: defaultSyncTasks(), cwd: process.cwd(), config, tokens, projectType });
VS 代码扩展
下载自 视觉工作室代码市场。 。 。 .
或通过国家行动倡议:
code --install-extension deltabox.toolchain-vscode
见 软件包/vscode/README.md 学习更多如何运作.
发展
这个Repo是Yarn 4工作空间. 维特+ (vp) 驱动格式、线程、测试和
从根中执行任务 vite.config.ts生成的him被狗吃掉了
与 vite.shim: 'static'这样 vp 在没有已建软件包的情况下装入; Vite 和
通过 Vitest 解析工作空间导入 resolve.tsconfigPaths。 。 。 .
yarn install # fresh checkout
yarn dev # run the CLI from src/ via tsx
yarn typecheck # packages + root
yarn check # Oxfmt + Oxlint check (no writes)
yarn check:fix # same, auto-fixing every workspace + the root
yarn format # `vp fmt`
yarn lint # `vp lint --fix`
yarn build # packages via `vp run` + root tsdown
yarn test # builds, then package + root tests
yarn test:clean # remove leftover emulation temp workspaces
vp只在还原根中解决,所以从根中运行这些。 满yarn build仅供出版时使用dist/VSIX: 类型检查,vp run编号 :fmt编号 :lint编号 :test, (中文(简体) ),yarn dev维特从源头逃出 这个 模拟套接字生成已建dist/cli/index.js因此,需要建立一个 建设.
VS码扩展的单元测试与root Vitest套件一起运行. 内容
集成套件启动一个真正的扩展主机
(单位:千美元)yarn workspace toolchain-vscode test:integration); CI 在 Xvfb 下运行
页:1 vscode-integration 任务之后 ci。在 Windows 上,它无法在 VS 代码时运行
稳定是开放的.
医生住在这里 apps/docs (视频): yarn docs build。 。 。 .
文档
完整文档、指南和实例 工具链.deltabox.studio。 。 。 .
源页面在 apps/docs。 。 。 .
许可证
MPL - 2.0 导弹 三角形框