簡體   English   中英

如何在Microsoft Azure網站上安裝npm作用域模塊

[英]How to install a npm scoped module on Microsoft Azure Web Sites

我公司有私有范圍的npm模塊,即以@mycompanyscope/mymodule開頭的模塊。 默認情況下,npm中所有作用域模塊都是私有的,因此您必須先登錄才能發布

npm login
Username:myusername
Password:**********
npm publish

作用域模塊必須在package.json具有屬性name和作用域:

{
  "name": "@mycompanyscope/mymodule"
}

並且必須刪除private

登錄后,您會在$HOME文件夾的.npmrc文件中獲得一個token ,就像

//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000
scope=mycompanyscope

此時,所有內容都已正確設置為可以在此計算機上publishinstall 如果您授予其他用戶訪問權限,則他們可以在其計算機上進行npm login並從那里獲取令牌以進行工作。

問題出在服務器端,具體取決於您的服務器。 在Heroku上,它應按此處說明的方式工作。

我的服務器環境是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) npm@mycompany.com

因此我無法從這台機器生成任何令牌。 那么,如何在此處授予訪問權限,以使npm install能夠針對私有作用域模塊正確運行?

[更新]由於以下答案,我能夠將npm范圍內的模塊(@ mycompanyscope / myModule)部署到Azure網站,在項目根文件夾( package.json所在的位置)中創建.npmrc文件,然后在此處寫入在npm login之后獲得的令牌,並將registry添加到npmjs.org注冊表中:

//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000
scope=mycompanyscope
@mycompanyscope:registry=https://registry.npmjs.org/

您是否嘗試過npm login本地計算機上的私有npm注冊表,以在node.js應用程序中生成.npmrc文件,然后將其與應用程序一起部署到Azure Web App。

有關更多詳細信息,請參閱https://blog.maartenballiauw.be/post/2015/10/13/working-with-a-private-npm-registry-in-azure-web-apps.html

如有任何更新或進一步的關注,請隨時告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM