为您的 Monorepo 创建 TypeScript CLI

为您的 monorepo 创建 typescript cli

我喜欢为我的 monorepo 创建本地 cli,以自动执行构建和部署等任务。这些任务通常需要的不仅仅是在 npm 脚本中链接几个命令(如 rimraf dist && tsc)。

使用 commander.js 和 tsx,我们可以创建用 typescript 编写的可执行程序,这些程序像任何其他 cli 工具一样从命令行运行。

#!/usr/bin/env -s pnpm tsximport { command } from 'commander';const program = new command()  .name('monorepo')  .description('cli for monorepo')  .version('1.0.0');program  .command('build')  .description('build the monorepo')  .action(async () => {    console.log('building...');    // run your build steps ...  });program  .command('deploy')  .description('deploy the monorepo')  .action(async () => {    console.log('deploying...');    // run your deploy steps ...  });await program.parseasync(process.argv);

登录后复制

将此脚本保存为项目根目录中的 cli (或任何您喜欢的名称),并使用 chmod x cli 使其可执行。然后您可以使用 ./cli:
直接运行它

$ ./cliusage: monorepo [options] [command]cli for monorepooptions:  -v, --version   output the version number  -h, --help      display help for commandcommands:  build           build the monorepo  deploy          deploy the monorepo  help [command]  display help for command

登录后复制

允许您在没有节点、npx 甚至 .ts 扩展名的情况下运行它的魔力就在第一行 – shebang:

#!/usr/bin/env -S pnpm tsx

登录后复制

这个 shebang 告诉你的 shell 哪个程序应该执行这个文件。在幕后,它将您的 ./cli 命令转换为 pnpm tsx cli。这也适用于其他包管理器 – 您可以使用 npm 或yarn 代替 pnpm。

以上就是为您的 Monorepo 创建 TypeScript CLI的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2646917.html

(0)
上一篇 2025年3月7日 07:52:02
下一篇 2025年2月28日 20:18:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 你的错误处理方式是错误的!

    你错误处理错误:可预测和标准化响应的案例 简介:固执己见的立场 javascript 中的错误处理是一个引起强烈意见的话题,我在这里分享我的观点:传统的 try-catch 方法笨重、不方便且过时。在 garmingo,我们构建了 garm…

    2025年3月7日
    200
  • Ecom 赛普拉斯测试

    使用 cypress 进行 e2e 测试教您如何使用 cypress(最流行的自动化工具之一)执行端到端 (e2e) 测试使用 javascript 进行测试,尤其是 web 应用程序。我将详细解释所有概念和步骤。 什么是端到端测试? 端到…

    2025年3月7日
    200
  • 使用 Nextjs TailwindCSS、Prisma、Google AI Studio 和 Clerk 进行 AI 旅行计划

    演示:https://travelplan-sm.vercel.app/ 人工智能旅行规划师 使用 next.js 15、tailwind css、prisma、google ai studio 和 clerk 构建的 ai 旅行规划应用程…

    2025年3月7日
    200
  • 同步与异步 JavaScript 简化

    javascript 被广泛认为是一种单线程语言。这意味着它一次只能按一个顺序执行一段代码。然而,javascript 高效处理异步任务的能力是其强大的构建交互式和响应式应用程序的原因之一。 在本文中,我们将通过实际示例探讨同步和异步 ja…

    2025年3月7日
    200
  • js如何导出excel

    JavaScript 中导出 Excel 文件的方法:使用 FileSaver.js 库:通过安装库、设置数据、创建工作表和导出工作表实现数据导出。使用 ExcelJS 库:安装库后创建工作簿、添加工作表、填充数据和导出工作簿以导出数据。 …

    2025年3月7日
    200
  • ext js 如何重置

    Ext JS 提供了多种重置组件状态的方法:重置表单:form.reset(),清除字段值并重置校验状态。重置数据视图:view.getStore().loadData([]),重置数据。重置布局容器:container.getLayout…

    2025年3月7日
    200
  • TypeScript 中的装饰器

    typescript 中的装饰器是一项强大的功能,允许您添加元数据或修改类、方法、属性或参数的行为。它们经常用在 angular 等框架中来丰富组件和服务。无论您是初学者还是经验丰富的开发人员,本文都会指导您逐步创建自己的装饰器来增强您的 …

    2025年3月7日
    200
  • pycharm如何引用js

    如何在 pycharm 中引用 javascript 简介 在 PyCharm 中引用 JavaScript 对于开发和维护包含 JavaScript 代码的 Web 应用程序至关重要。以下步骤将指导您如何将 JavaScript 引用添加…

    编程技术 2025年3月7日
    200
  • 掌握 TypeScript 的模式匹配:增强代码的功能和安全性

    typescript 的可区分联合是一个强大的功能,它将模式匹配提升到一个新的水平。它们使我们能够创建复杂的、类型安全的条件逻辑,而不仅仅是简单的 switch 语句。我在最近的项目中广泛使用了这种技术,它改变了我在 typescript …

    2025年3月7日
    200
  • 从 JavaScript 到 TypeScript:TypeScript 初学者指南

    如果您已经学习了 javascript,您可能想知道接下来要解决什么问题。有如此多的编程语言可供选择,做出决定可能会让人不知所措。但如果您一直在考虑提高 javascript 技能,那就不用再犹豫了——typescript 是一个很好的下一…

    2025年3月7日
    200

发表回复

登录后才能评论