首頁 > web前端 > js教程 > 發布 GENEREADME

發布 GENEREADME

Mary-Kate Olsen
發布: 2024-12-06 09:09:09
原創
451 人瀏覽過

對於本週的實驗室,我現在要發布 GENEREADME。

Releasing GENEREADME 克萊布恩特拉 / 基因自述文件

GENEREADME 是一個命令列工具,它接收原始程式碼檔案並產生 README.md 文件,該檔案利用 LLM 解釋文件中的程式碼。

貢獻

歡迎為 GENEREADME 做出貢獻!請查看 CONTRIBUTING.md 以取得有關設定環境、如何運作和測試該工具以及提交變更的指南。

GENEREADME

GENEREADME 是一個命令列工具,它接收文件、處理它並產生一個 README 文件,其中包含文件內容的解釋或文件。該工具利用 OpenAI 聊天完成來分析文件並產生內容。

Releasing GENEREADME

用法

透過執行以下命令安裝該工具:

npm i -g genereadme
登入後複製
登入後複製
登入後複製
進入全螢幕模式 退出全螢幕模式

該工具目前支援 Groq 和 OpenRouter,預設使用 Groq。必須提供相應提供者的有效 API 金鑰。

透過建立 .env 檔案或在使用指令時透過 -a 或 --api-key 標誌來提供有效的 API 金鑰:

API_KEY=API_KEY

or

genereadme <files> -a API_KEY
genereadme <files> --api-key API_KEY
登入後複製
登入後複製
登入後複製

使用現有範例檔案執行該工具或開始使用您自己的:

在 GitHub 上查看

過程

發布工具本身一點也不麻煩,但是,我必須採取一些額外的步驟來確保正確發布。

研究

在關注發布過程之前,我花了一些時間研究將包發佈到 npm 註冊表的最佳實踐和步驟。這是我學到的:

1。如何將包裝發佈到 npm
為了了解基本流程,我參考了 npm 官方文件。本指南概述了基本步驟,包括設定 package.json、執行 npm 發布和管理版本。

2。使用語意版本控制
版本控制在向使用者發出變更訊號方面發揮著至關重要的作用。我研究了語意版本控制的原理,它使用 MAJOR.MINOR.PATCH 格式來描述重大變更、新功能和錯誤修復。這確保了我的工具每個版本都有一個有意義的版本號。

3。管理 .npmignore
我研究瞭如何有效地使用 .npmignore 文件來確保我的 npm 包僅包含最終用戶必需的文件。透過仔細建立此文件,我能夠排除已發布的套件中不需要的特定於開發的文件,例如設定檔、測試和文件。這不僅減小了軟體包的大小,而且透過只專注於用戶運行該工具實際需要的內容,使其更加專業。正確管理 .npmignore 是準備完善版本的關鍵步驟。

發布

完成研究後,我仔細檢查了所有要求、任何可能的錯誤以及任何失敗的測試。
在我看來一切順利後,我繼續透過運行來發布套件:

npm i -g genereadme
登入後複製
登入後複製
登入後複製

注意:執行此命令將要求使用者透過執行以下命令登入其 npm 帳戶:

API_KEY=API_KEY

or

genereadme <files> -a API_KEY
genereadme <files> --api-key API_KEY
登入後複製
登入後複製
登入後複製

測試

現在我已經發布了 GENEREADME v1.0.0,是時候請一些最終用戶測試該包是否有效。
正如預期的那樣,有一些錯誤得以解決。一種不會影響工具的效能,另一種會真正破壞工具的效能。

調整

版本指令錯誤

發現的簡單錯誤與使用指令genereadme -v有關。此命令應列印工具的名稱和目前版本。但是,我編碼這部分的方式是從目前目錄中的 package.json 中檢索專案名稱和版本。這意味著,如果最終用戶運行此命令,它將顯示 THEIR 項目的名稱和版本,而不是我的。因此,這是一個簡單的修復,只需確保它始終從正確的專案中檢索它。

輸出目錄錯誤

現在這是一個錯誤,破壞了在我的本機測試中技術上有效的工具,但我忘記了一個簡單的測試案例。
專案的資料夾結構只考慮了開發人員和貢獻者,因此專案中應該有輸出資料夾,我也將其推送到包含輸出範例結果的主儲存庫。

現在,我必須記住,對於最終用戶來說,它會略有不同。
以前,程式碼編寫為僅寫入outputs/目錄,而不檢查其是否存在,如果不存在則建立一個。這導致對已發布套件的手動測試失敗,因為最終用戶沒有outputs/目錄,如果它不存在,該工具將失敗而不是建立一個。

有了這個發現,我覺得很簡單吧?
直到我嘗試推動更改,心想「好吧,問題解決了!」但令我驚訝的是,我的 CI 失敗了!

罪魁禍首:

npm i -g genereadme
登入後複製
登入後複製
登入後複製

這就是我檢查並建立outputs/目錄的方式。然而,在我的端對端測試中,我嘲笑 fs.existsSync() 返回 false 值,原因如下:

API_KEY=API_KEY

or

genereadme <files> -a API_KEY
genereadme <files> --api-key API_KEY
登入後複製
登入後複製
登入後複製

這個函數檢查使用 fs.existsSync() 的 toml 配置文件,我不想使用 toml 配置文件進行端到端測試,我模擬這個方法返回 false,現在是與我所做的錯誤修復相衝突。

我還沒有掌握模擬,也沒有找到在不同條件下為同一方法製作不同模擬值的方法。因此,在我了解該過程之前,我進行了臨時修復,以確保在每個測試案例之前刪除outputs/目錄。

npm publish
登入後複製

基因自述文件 v1.0.4

我製作的重要補丁到此結束! GENEREADME 現已可供使用!

以上是發布 GENEREADME的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板