![](/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.