【问题标题】:How to install a npm scoped module on Microsoft Azure Web Sites如何在 Microsoft Azure 网站上安装 npm 范围模块
【发布时间】:2016-08-04 20:56:51
【问题描述】:

我的公司有私有范围的 npm 模块,即以 @mycompanyscope/mymodule 开头的模块。默认情况下,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

此时,这台机器上的publishinstall 都已正确设置。如果您授予其他用户访问权限,他们可以在他们的机器上执行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) 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/

【问题讨论】:

    标签: node.js azure npm azure-web-app-service npm-install


    【解决方案1】:

    您是否尝试过在本地计算机上 npm login 您的私有 npm 注册表,在您的 node.js 应用程序中生成一个 .npmrc 文件,然后使用您的应用程序部署到 Azure Web 应用程序。

    详情请咨询https://blog.maartenballiauw.be/post/2015/10/13/working-with-a-private-npm-registry-in-azure-web-apps.html

    任何更新或进一步的问题,请随时告诉我。

    【讨论】:

    • 感谢您的建议。您提到的解决方案是使用myget 托管npm private registry,以便您可以将其添加到您的.npmrc 文件中,例如npm install --save --registry https://www.myget.org/F/demo-site/npm/,但我使用的是npmjs.com 私有模块,我没有找到任何示例为它添加一个注册表到我的.npmrc
    • 同理,当你运行命令npm login时,默认的注册地址是registry.npmjs.org。并且根据npmjs.com/settings/tokens的描述,您可以手动创建.npmrc并在此页面设置auth token,让您的Azure Web Apps环境下载您的私有模块。
    • 我确认这是解决方案。谢谢你。我已经更新了问题。
    猜你喜欢
    • 1970-01-01
    • 2011-04-29
    • 2019-02-07
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多