為什么要堅持寫作?寫作就是求甚解的程序,
目錄
- 步驟
- 實作
- git clone 拉取遠程倉庫代碼
- 修改專案名稱
- 重新初始化本地倉庫 .git
- 使用 fs + ejs 重新寫入部分檔案
上一章手把手教你使用nodejs撰寫cli(命令列)和大家分享了通過 fs 模塊讀寫ejs 模板的方式創建 CLI 工具,
這一章我們來講解如何將遠程倉庫的代碼做為 CLI 工具的代碼模板,
步驟
其實 CLI 工具使用遠程倉庫代碼作為代碼模板無非就是一下步驟
1. 拉取遠程倉庫代碼
2. 修改專案名稱
3. 重新初始化本地倉庫 .git
4. 使用 fs + ejs 重新寫入部分檔案
實作
上一章講了通過 inquirer 互動式命令列拿到了用戶的選擇、使用 execa 子行程管理工具來安裝依賴、操作git等
const config = await question()
// 創建的專案路徑
const getProjectPath = () => {
return `./${ config.packageName }`
}
git clone 拉取遠程倉庫代碼
await execa(`git`, ['clone', 'https://gitee.com/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(`npm`, ['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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402711.html
標籤:其他
上一篇:【自學Android開發(一)】
