fix/npm-git-url/main #43

Merged
admin merged 1 commits from fix/npm-git-url/main into master 2026-09-17 07:32:00 +00:00
Member

摘要

README 的頭一行安裝指令跑不起來。npm i -g https://….git 會被 npm 當成遠端壓縮檔而不是 git repo,下載回來解壓失敗。補上 git+ 前綴,並加一條測試把這個規則釘住。

需求議題

#1 — tea-sdlc:以 tea 驅動 SDLC 全流程的跨平台指令組

工作包議題

#25 — 以 npm 佈署並提供 tea-sdlc 指令(其驗收標準「npm i -g <git url> 後 PATH 上出現 tea-sdlc 指令」)

變更內容

  • README.md:兩處 npm i -g 改為 git+https://,並加註為什麼前綴不能省。
  • test/readme-install.test.js:新增一條規則——README 裡指向 .git 的 npm i -g 指令一律要帶 git+ 前綴。

設計重點

為什麼不直接在測試裡跑一次 npm 安裝。 那要開網路、要三秒,而這套測試向來是密封的(假 Gitea、臨時目錄、不碰外部服務)。「前綴在不在」這條規則本身就足以擋掉這個錯,成本是零。

先前那條「README 指令逐字執行得動」的測試為什麼沒抓到: 它只挑 tea-sdlc 開頭的行來跑,npm 那行從來沒被執行過——而那正好是使用者會打的第一行。

解決的問題

照 README 第一行做的人會得到 TAR_BAD_ARCHIVE: Unrecognized archive format。這個訊息完全沒有指向真正的原因(網址寫法),只會讓人以為套件壞了。

影響的功能

只動文件與測試,沒有行為變更。

測試結果

npm test 451 pass / 0 fail。

另外把 README 上修正後的指令逐字複製執行,端到端驗過一次:

npm i -g git+https://gitea.jsc.idv.tw/plugins/tea-sdlc.git
tea-sdlc status   → ok=true healthy=true version=0.0.1 linked=false
tea-sdlc prompt --name sdlc-plan  → 讀得到正本

🤖 Generated with Claude Code

## 摘要 README 的頭一行安裝指令跑不起來。`npm i -g https://….git` 會被 npm 當成遠端壓縮檔而不是 git repo,下載回來解壓失敗。補上 `git+` 前綴,並加一條測試把這個規則釘住。 ## 需求議題 #1 — tea-sdlc:以 tea 驅動 SDLC 全流程的跨平台指令組 ## 工作包議題 #25 — 以 npm 佈署並提供 tea-sdlc 指令(其驗收標準「`npm i -g <git url>` 後 PATH 上出現 `tea-sdlc` 指令」) ## 變更內容 - `README.md`:兩處 `npm i -g` 改為 `git+https://`,並加註為什麼前綴不能省。 - `test/readme-install.test.js`:新增一條規則——README 裡指向 `.git` 的 `npm i -g` 指令一律要帶 `git+` 前綴。 ## 設計重點 **為什麼不直接在測試裡跑一次 npm 安裝。** 那要開網路、要三秒,而這套測試向來是密封的(假 Gitea、臨時目錄、不碰外部服務)。「前綴在不在」這條規則本身就足以擋掉這個錯,成本是零。 **先前那條「README 指令逐字執行得動」的測試為什麼沒抓到:** 它只挑 `tea-sdlc` 開頭的行來跑,`npm` 那行從來沒被執行過——而那正好是使用者會打的第一行。 ## 解決的問題 照 README 第一行做的人會得到 `TAR_BAD_ARCHIVE: Unrecognized archive format`。這個訊息完全沒有指向真正的原因(網址寫法),只會讓人以為套件壞了。 ## 影響的功能 只動文件與測試,沒有行為變更。 ## 測試結果 `npm test` 451 pass / 0 fail。 另外把 README 上修正後的指令逐字複製執行,端到端驗過一次: ``` npm i -g git+https://gitea.jsc.idv.tw/plugins/tea-sdlc.git tea-sdlc status → ok=true healthy=true version=0.0.1 linked=false tea-sdlc prompt --name sdlc-plan → 讀得到正本 ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jiantw83 added 1 commit 2026-09-17 07:30:47 +00:00
npm 只有看到 git/git+ssh/git+http/git+https/git+file 才會當成 git repo。
寫成 https://….git 會被歸類成遠端 tarball,下載回來解壓失敗,錯誤是
TAR_BAD_ARCHIVE: Unrecognized archive format——看起來完全不像「網址寫法錯了」,
使用者只會以為套件壞了。

先前那條「README 指令逐字執行得動」的測試沒抓到,因為它只跑 tea-sdlc 開頭的
行,npm 那行從來沒被執行過。補一條規則把 .git 網址必須帶 git+ 前綴釘住:
真的去跑一次 npm 全域安裝要開網路、要三秒,不適合放進這套向來密封的測試裡,
但「前綴在不在」這條規則本身就足以擋掉這個錯。

議題 #25

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
admin approved these changes 2026-09-17 07:31:57 +00:00
admin merged commit 1e93b77a6d into master 2026-09-17 07:32:00 +00:00
admin deleted branch fix/npm-git-url/main 2026-09-17 07:32:00 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/tea-sdlc#43