手把手教你使用nodejs编写cli(命令行)——拉取远程仓库作为代码模板

编程知识 更新时间:2023-04-07 01:03:12

为什么要坚持写作?写作就是求甚解的过程。

目录

    • 步骤
    • 实现
      • git clone 拉取远程仓库代码
      • 修改项目名称
      • 重新初始化本地仓库 .git
      • 使用 fs + ejs 重新写入部分文件


系列文章

  • 手把手教你使用nodejs编写cli(命令行)
  • 手把手教你使用nodejs编写cli(命令行)——拉取远程仓库作为代码模板
  • 手把手教你使用nodejs编写一个【使用远程仓库模板,快速创建项目模块】的cli(命令行)

上一章手把手教你使用nodejs编写cli(命令行)和大家分享了通过 fs 模块读写ejs 模板的方式创建 CLI 工具,
这一章我们来讲解如何将远程仓库的代码做为 CLI 工具的代码模板


步骤

其实 CLI 工具使用远程仓库代码作为代码模板无非就是以下步骤

1. 拉取远程仓库代码

2. 修改项目名称

3. 重新初始化本地仓库 .git

4. 使用 fs + ejs 重新写入部分文件


实现

上一章讲了通过 inquirer 交互式命令行拿到了用户的选择、使用 execa 子进程管理工具来安装依赖、操作git等,我们依旧使用execa管理子进程

const config = await question()

// 创建的项目路径
const getProjectPath = () => {
  return `./${ config.packageName }`
}

git clone 拉取远程仓库代码

await execa(`git`, ['clone', 'https://gitee/yanhuakang/my-first-npm-lib.git'], { cwd: './', })

修改项目名称

await execa(`mv`, ['my-first-npm-lib', config.packageName], { cwd: './', })

重新初始化本地仓库 .git

await execa(`rm`, ['-rf', `${getProjectPath()}/.git`], { cwd: './', })
await execa(`cd`, [config.packageName], { cwd: './', })
await execa(`git`, ['init'], { cwd: './', })
await execa(`git`, ['add', './'], { cwd: getProjectPath(), })
await execa(`git`, ['commit', '-m', 'init'], { cwd: getProjectPath(), })

使用 fs + ejs 重新写入部分文件

如果你想拉取完远程代码仓库后,改变一些远程仓库某些文件的配置,我们需要将对应的代码文件写入到我们的 CLI 项目的 ejs 模板中,然后在拉取完成远端代码后删除原文件后再写入对应的文件即可。

如修改启动 serve 的端口号,详见 手把手教你使用nodejs编写cli(命令行)

import webpackConfig from './template/webpackConfig/index.js'

await execa(`rm`, ['-rf', `./${config.packageName}/webpack.config.js`], { cwd: getProjectPath(), })
fs.writeFileSync(`${getProjectPath()}/webpack.config.js`, webpackConfig(config))

更多推荐

手把手教你使用nodejs编写cli(命令行)——拉取远程仓库作为代码模板

本文发布于:2023-04-07 01:03:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/e6c741bf15442b0b84fdce2774a576c1.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令行   仓库   手把手教你   模板   代码

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 51500文章数
  • 14阅读数
  • 0评论数