创建- ts
一个脚手架的CLI会书写出000式的TypeScript / Node.js项目. 它将选定变体的捆绑模板复制到目录中,填入项目元数据并运行 pnpm install。 。 。 .
所需资源
- 节点.js v20 或以后( CLI 退出时另有错误)
- pnpm( 生成的项目拒绝其他软件包管理器
only-allow(中文(简体) ) - 网络访问: 依赖性安装于
pnpm install,则LICENSE文本取自 GitHub 许可证 API( 插入失败警告),以及fixpack编号 :fixdevcontainer运行通过npx(撞倒失败)
使用量
pnpm create @book000/ts [outdir] [options]
outdir 默认为当前目录,如果不存在则创建。 未作为选项给出的任何值都会以交互方式询问 。 当目录名称为有效包名时,该目录名称作为默认项目名称提供.
在没有提示的情况下运行,通过每个选项:
pnpm create @book000/ts my-app \
--name my-app --org book000 --repo my-app \
--description "My app" --author book000 --license MIT --homepage "" \
--bug-url https://github.com/book000/my-app/issues \
--variant base --no-esm --no-test --no-docker \
--no-ignore-data --no-add-reviewer --overwrite
选项
| 选项 | 说明 | 默认 |
|---|---|---|
--name <name> | 项目名称( npm 软件包名称规则: 小写, 最多 214 个字符) | 被问 |
--org <org> | GitHub 组织/ 用户名 。 包被命名为 @<org lowercased>/<name> | 被问(book000(中文(简体) ) |
--repo <repo> | 仓库名称 | 被问 |
--description <desc> | 项目说明 | 被问 |
--author <author> | 作者名称 | 被问 |
--license <spdx> | SPDX 许可证标识符( 例如) MIT, (中文(简体) ), Apache-2.0(中文(简体) ) | 被问(MIT(中文(简体) ) |
--homepage <url> | 主页 URL. 空字符串省略字段 | 被问 |
--bug-url <url> | 错误报告 URL | 被问 |
--variant <variant> | base, (中文(简体) ), config-batch, (中文(简体) ), fastify 或者说 discord-bot | 被问(base(中文(简体) ) |
--esm 编号 : --no-esm | ES 模块/通用JS | 被问( CommonJS) |
--test 编号 : --no-test | 添加/ 不添加 Jest 测试 | 被询问( 否) |
--docker 编号 : --no-docker | 添加/ 不添加 Dockerfile, (中文(简体) ), entrypoint.sh 和 Docker 工作流程 | 被询问( 否) |
--ignore-data 编号 : --no-ignore-data | 添加/ 不添加 data/ 改为 .gitignore | 被询问( 否) |
--add-reviewer 编号 : --no-add-reviewer | 添加/ 不添加添加添加审查工作流程 | 被询问( 否) |
--overwrite | 不询问而覆盖已存在文件 。 没有它,有人问你什么时候 package.json, (中文(简体) ), tsconfig.json 或者说 src 已经存在 | 关闭 |
无效的值 --name, (中文(简体) ), --org, (中文(简体) ), --repo, (中文(简体) ), --license 或者说 --variant 使 CLI 退出错误。 提示和大多数 CLI 消息都是用日文写的.
备选案文
| 备选案文 | 目录 |
|---|---|
base | 最小设置 : src/main.ts |
config-batch | 带有 JSON 配置的批量工作( NameConfigFramework 从 @book000/node-utils)和a 数据 generate-schema 脚本 |
fastify | 将 HTTP 服务器快速化 @fastify/cors |
discord-bot | 不和.js 机器人与配置和 generate-schema 脚本 |
生成的项目
每个项目都得到 tsconfig.json, (中文(简体) ), .prettierrc.yml, (中文(简体) ), eslint.config.mjs, (中文(简体) ), renovate.json, (中文(简体) ), .depcheckrc.json, (中文(简体) ), .fixpackrc, (中文(简体) ), pnpm-workspace.yaml, (中文(简体) ), .devcontainer/devcontainer.json, (中文(简体) ), .gitignore, (中文(简体) ), .node-version (用于运行CLI的Node.js版本),, LICENSE (当它可以取出的时候), package.json, (中文(简体) ), pnpm-lock.yaml, (中文(简体) ), .github/workflows/nodejs-ci-pnpm.yml 和变体的 src/ 文档。 与 --test,变体的测试文件和 tsconfig.test.json 页:1 没有它,杰斯特包在安装后被移除.
在生成的项目中, pnpm run lint, (中文(简体) ), pnpm run test (与 --test, (中文(简体) ), pnpm start 财务报告和审定财务报表 pnpm run dev 备有.
发展
pnpm install
pnpm build # bundle src/index.ts to dist/index.mjs with tsdown
pnpm lint # prettier --check src, eslint, tsc
pnpm test # vitest
node dist/index.mjs --help
节点.js版本被固定在 .node-version 并输入 package.json。见 一般事务人员(其他职等) 规范结构和公约.
释放
每一次推动 main 或者说 master 运行 .github/workflows/release.yml,它会从常规提交类型中碰出版本,标记并出版 @book000/create-ts {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}请说 切勿撞击版本或手动发布 .
许可证
麻省理工学院