如何创建自己的 npm starter-kit?

Posted

技术标签:

【中文标题】如何创建自己的 npm starter-kit?【英文标题】:How to create your own npm starter-kit? 【发布时间】:2019-02-02 03:36:58 【问题描述】:

艺术开端: 流行的 node.js 框架带有它们自己的作为项目模板的 starter-kits,例如 React 带有 starter-kit 。 当用户想要创建一个新的 React 应用程序时,他们可以使用简写 npx create-react-app my-app. ... 自动创建具有所有基线项目文件、目录和包依赖项的整个项目脚手架。 使用 starter-kit 时,npx 解析 starter-kit 文件中的模板变量,即如果 package.json 包含条目 my-application-name,npx 将根据用户输入将模板变量替换为例如“我的第一个应用程序”。 React 只是此类入门工具包的一个示例。

问题陈述: 我想为自己的 node.js 框架构建自己的入门工具包。 乍一看,似乎只是按照约定命名我的包以“create-”开头并在正确的位置使用模板-vars。 我试了一下并开始复制&粘贴&替换,但是npm install 不起作用,因为未解析的模板变量会导致构建错误。

有人知道如何创建自己的 npx starter-kit 的教程吗? 有人知道如何构建和发布新的入门工具包吗?

【问题讨论】:

供参考,相关文档为npm-init npm init <initializer> -> npx create-<initializer> 通过how to build a cli with node js上的教程,我发现了一些有用的见解 嗨,您找到解决问题的方法了吗? 【参考方案1】:

是的,您可以使用 npm 注册表上的 CLI 帮助程序包构建自己的 npx 启动器

如何构建自己的 npx 启动器的步骤...?

    您可以使用argscommander 获取cli 输入(node argv with the process object)并解析它 到对象中,以便您可以跟踪用户想要什么

    现在您可以基于 CLI 中先前解析的对象 使用inquirer 收集更多信息,其中 您可以提出是/否问题或选择多种选项之一。

    用户回答完所有问题后,您现在可以编写逻辑 用于根据用户的输入创建所需的启动器

    你可以使用execa来执行git等进程命令 init , git clone 或任何你自己想到的命令

    您可以使用listr 来美化您自己的任务列表 漂亮的陀螺

    您可以使用chalk 在 CLI 中使用颜色打印该行 并使其更易于阅读,成功时将消息设为绿色,失败时将消息设为红色

有关它如何协同工作的更多说明,您可以查看video

【讨论】:

以上是关于如何创建自己的 npm starter-kit?的主要内容,如果未能解决你的问题,请参考以下文章

我可以从 Material UI 创建自定义组件库 NPM 包吗?

如何在npm上发布自己的包

自定义npm包——typeScript版本

npm+vue-cli发布vue自定义组件

如何使用@vue/cli 3.0在npm上创建,发布和使用你自己的Vue.js组件库

npm包发布