我的公司有專用作用域npm
模塊,即以@mycompanyscope/mymodule
開頭的模塊。通過默認設置在故宮所有範圍的模塊都是私人所以你必須首先登錄之前發佈如何在Microsoft Azure網站上安裝npm作用域模塊
npm login
Username:myusername
Password:**********
npm publish
作用域模塊必須具備的使用性能name
與在package.json
一個範圍:
{
"name": "@mycompanyscope/mymodule"
}
和private
關鍵必須刪除。
只要你登錄你在$HOME
文件夾獲取在.npmrc
文件token
,就是喜歡
//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000
scope=mycompanyscope
此時一切都正確設置,以publish
和install
在這臺機器。如果您授予其他用戶的訪問權限,他們可以在他們的機器上執行npm login
並從中獲取令牌。
問題出現在服務器端,具體取決於您的服務器。在Heroku上,它應該像解釋here一樣工作。
我的服務器環境是Azure網站。根據一些文檔,您應該在部署階段將您的.npmrc
文件上傳到Azure,如果我有辦法爲該計算機獲取令牌,那麼這將非常棒。 如果我嘗試登錄到Kudu PowerShell
,事實是,我只是無法登錄,登錄過程掛起,在一些點:
Kudu Remote Execution Console
Type 'exit' then hit 'enter' to get a new powershell process.
Type 'cls' to clear the console
PS D:\home> npm login
Username: mycompany
Password: *********
Email: (this IS public) [email protected]
,使我無法生成從本機的任何標記。那麼如何在這裏授予訪問權限以讓npm install
正確運行專用範圍模塊?
[更新] 多虧了答案下面我就能夠部署NPM範圍的模塊(@ mycompanyscope/Mymodule中)到Azure網站,創建.npmrc
文件在項目的根文件夾(其中package.json
是)然後寫在那裏的npm login
後獲得的令牌,並添加registry
到npmjs.org
註冊表:
//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000
scope=mycompanyscope
@mycompanyscope:registry=https://registry.npmjs.org/
感謝您的建議。您提到的解決方案是使用'myget'來託管'npm私人註冊表',以便您可以將它添加到'.npmrc'文件中,例如'npm install --save --registry https://www.myget.org/ F/demo-site/npm /'但我使用的是'npmjs.com'專用模塊,並且我沒有發現任何爲我的'.npmrc'添加註冊表的例子。 – loretoparisi
與之相同,當您運行命令'npm login'時,默認的註冊表url是'registry.npmjs.org'。並根據https://www.npmjs上的描述。com/settings/tokens,你可以手動創建'.npmrc'設置auth令牌在這個頁面中,讓你的Azure Web Apps環境下載你的私有模塊。 –
我確認這是解決方案。謝謝。我已經更新了這個問題。 – loretoparisi