你可以使用 NPM 命令行工具來管理你在 NPM 倉庫的私有模塊代碼,這使得在項目中使用公共模塊變的更加方便。
開始前的工作
你需要一個 2.7.0 以上版本的 npm ,並且需要有一個可以登陸 npm 倉庫的賬號。
npm install -g npm npm login
軟件包設置
所有的私有模塊都是 scoped package 的。
scope 是 npm 的新特性。如果一個模塊的名字以 "@" 開始,那么他就是一個scoped package。scope 就是"@"與"/"之間的部分。
@scope/project-name
當你注冊私有模塊到一個用戶下時,你的 scope 就是當前用戶的用戶名。
@username/project-name
如果要使用 npm init 初始化一個軟件包,你可以通過自定義 --scope 選項設置你的 scope
npm init --scope=<your_scope>
如果你在大多數時候使用的 scope 都是相同的,可以設置一個默認的 scope ,這樣在我們初始化的時候會自動使用該 scope 。
npm config set scope <your_scope>
發布模塊
發布一個模塊的操作是非常簡單的
npm publish
默認情況下,scoped package 會發布為私有模塊,發布為私有模塊是需要付費的,費用是每個月 $7 。更詳細的信息可參考 NPM (node package manager) 入門 - 基礎使用
一旦完成發布,你將會在npm庫站點上看到你的 scoped package,有 private 標志,說明是非公共的模塊,他人無法使用。
授權其他成員訪問
如果你要授權給其他人使用你的模塊,你可以在 package 的權限設置頁面設置哪些用戶可以擁有 只讀或讀寫 權限。也可以通過命令行進行相關設置
npm owner add <user> <package name>
安裝私有模塊
如果要安裝私有模塊,你必須要有權限訪問到要安裝的私有模塊。安裝的時候可以使用 scope package name
npm install @scope/project-name
當你在項目中使用這些代碼模塊時可以如下使用
var project = require('@scope/project-name')
設置私有模塊為共有的
所有的 scoped packages 默認都是私有狀態的,這確保了無關人員不能訪問到該模塊。也可以修改改模塊為 public 狀態。
也可以使用命令行進行操作
npm access restricted <package_name>
這個操作可能需要幾分鍾才能生效,網站會將該模塊從私有列表中刪除。
寫在后面
關於本譯文如有任何疑問請在下面留言交流。
本文譯自 npm 官方文檔 https://docs.npmjs.com/private-modules/intro