![](/img/trans.png)
[英]How to npm configuration options (such as --scripts-prepend-node-path) when deploying to azure web sites?
[英]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
此時,所有內容都已正確設置為可以在此計算機上publish
和install
。 如果您授予其他用戶訪問權限,則他們可以在其計算機上進行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.