要在 npm 上發布庫,您需要:
一個npm 帳戶;你可以在這裡註冊。
您的程式碼作為一個專案;即,您的程式碼目錄中有一個 package.json,其中指定了名稱和版本。請注意,您可以透過以下方式產生此文件:
npm init
注意: 如果您的腳本未命名為index.js 並放置在專案根目錄中,則需要在package.json 中指定「main」屬性。請參閱此答案以獲取更多資訊。
如果該名稱已在 npm 上使用,您可以添加 @name-or-org/your-lib 等前綴;這就是當今大多數其他圖書館所做的。
你可以查看我的最小範例作為參考,但我相信你可以寫出比這更酷的東西。
最後,使用 CLI 指令發布:
npm publish
人們設定帶有前綴的套件名稱時請注意:它必須是您在npm上註冊的npm使用者名稱或組織名稱。例如,我可以使用 @remi_guan 作為我的前綴,但不能使用其他前綴。
此外,您需要執行 npmpublish --access public,因為 npm 認為您想要發布私有包,這是一項付費功能。
出現這個輸出就表示已經成功了。不過,如果您遇到問題,可以透過 Google 搜尋來排除故障。以下是您如何使用自己的函式庫:
如果您一直在遵循本指南,請嘗試使用您自己的程式庫。
如果您想了解更多,我還發現@backendbro 有比這更詳細的指南。
發布程式碼後,當您想要更新程式碼時,可以再次執行 npmpublish。不過,在發布之前,您應該更新package.json的版本屬性,並請遵守語意版本控制。
我建議你試試看!您能否發布您的庫的 v1.0.1 或 v1.1.0,並在另一個專案中使用它,就像我剛剛所做的那樣?你能弄清楚如何更新你的 npm 函式庫的版本嗎?
到目前為止,我們創建的這個庫還不是現代的,它缺少類型聲明,因此使用你的庫的人無法透過鍵入來突出顯示。此外,人們通常使用具有 ECMAScript 語法的 TypeScript。要了解差異,請參閱 Saisathish 的《Node.js 模組:CommonJS with ECMAScript》
但是我將在這篇文章中跳過 TypeScript 的詳細設定。有很多很好的教學可以學習如何初始化 TypeScript 項目,例如 inapeace0 的「如何開發 Typescript 函式庫」。
更進一步,您可以使用模板 TypeScript 儲存庫,例如 alexjoverm/typescript-library-starter,它已經整合了許多現代工具、最佳實踐等。
如果您要發布 TypeScript 庫,我只想提一些重要的注意事項:
您需要使用package.json中的module、main或entry屬性正確指向編譯後的檔案。使用模板並一一學習是不錯的選擇。再次,alexjoverm/typescript-library-starter 很好地指定了它們。
但是如果您確定您的程式庫將在 Deno、Bun 或 ts-node 上運行,您可以忽略我的上述準則,因為它們支援本機運行 TypeScript 程式碼。
請嘗試按照指南建立 TypeScript 庫並將其發佈到 npm。這仍然很簡單,就像第一個例子一樣。您應該使用匯入語法在另一個專案中對其進行測試,並且可以使用 IDE 查看類型提示。
使用 TypeScript,我可以用以下語法寫我的函式庫:
發布後,我可以安裝並匯入它,並透過 TypeScript 查看類型提示。
There's a common but slightly advanced problem waiting to be solved: Each time we update our package, we need to edit the version code.
That's annoying, especially if you're frequently updating your code.
However, there are tools to help you out.
I used ChatGPT to generate this summary comparing the two tools. For new coders, I'd suggest you try release-it, but semantic-release is also convenient if you know how to integrate it with CI.
In this post I'm going to show you how to use release-it, well, after you have made change to the project, simply run this in your project:
npx release-it
And choose is it a minor change or major change, then you're done!
So there you have it! We've walked through publishing a simple npm library, updating it, and even using TypeScript to make it more modern and robust. Remember to:
Give it a try! Publish your own library, update it, and see how it feels to contribute to the npm ecosystem. Happy coding!
以上是使用 TypeScript 和語義版本控制建立並發布 npm 庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!