發布 npm 套件的紀錄
如何開始
版控
初始化一個 Git 版控倉庫
git init
建立版控忽略清單
此處透過VSCode
套件.gitignore generator產生,僅需要透過選取即可自動產生相關的清單
建立 package.json 設定檔
透過預設值建立指令檔,之後再用編輯軟體開啟檔案修改
npm init -y
關於發布比較重要的幾個設定,例如:
- 程式進入點(main),在這邊的程式定義了一開始你套件從哪一隻程式開始
- 版本(version),每一次發布的版本都需要更新
- 版控(repository),如果有填寫的話會在 NPM 套件資訊頁面顯示
如何撰寫套件
透過 module.exports 匯出 利用 require 載入
// foo.js
var bar = {
message: "hello",
};
module.exports = {
getFoo: function () {
return { ...bar };
},
};
// main.js
var foo = require("./foo.js");
var result = foo.getFoo();
console.log(result);
記得模組匯出物件時,因為是傳參考,所以需要先複製物件輸出
如何發布套件
發布到 NPM 的話會需要一個帳號,所以還沒有申請的話是無法發布的,申請完畢後只要在指令列打上
npm adduser
依照提示輸入帳號、密碼及相關資訊,就會在你的帳號底下新增一組 token,而這個 token 就會在你的電腦中,等到下次要發布就不需要再輸入帳密,在這邊假設已經開發完畢了一個套件,需要發佈到 NPM 其實也很簡單
# 在package.json目錄下輸入
npm publish
程式就會自動替你將套件發布上去 NPM 了,稍後就可以在 NPM 個人帳號的 package 找到
如何架設私有 registry
docker pull verdaccio/verdaccio
docker run -d -v:/data/verdaccio/storage:/verdaccio/storage --name verdaccio -p 4873:4873 verdaccio/verdaccio
# 替換 registry
npm config set registry http://localhost:4873/
# 輸入帳號、密碼新建一個使用者登入
npm adduser
替換 registry 後,若日常 npm 使用有問題,建議還是透過 npm config edit
指令重設 registry
registry=https://registry.npmjs.org/
如何更新套件
更新package.json
的 version 版本號碼
你可以透過手動變更package.json
,也可以透過npm version <update_Type>
的指令
重新執行npm publish
如何使用套件
當套件已經發布上去之後,別的專案要使用可以直接透過下面的指令就可以自動下載套件了
npm install <PACKAGE_NAME>
如何取消發布
如果需要撤銷發布,只要輸入下列指令即可,但是請確保是在發布後 72 小時之內做這件事情
npm unpublish <PACKAGE_NAME> --force
因為套件發布之後,可能會有人下載使用,如果有其他人依賴你的套件,就會有問題,因此官方對於撤銷發布是不建議的,也因此有很多限制
關於官方對此的政策,可參考npm Unpublish Policy