Node.js 在单个命令中安装专用和公用NPM包
我在package.json文件中列出了几个npm包,一些是公共的,一些是私有的。我想使用Node.js 在单个命令中安装专用和公用NPM包,node.js,npm,Node.js,Npm,我在package.json文件中列出了几个npm包,一些是公共的,一些是私有的。我想使用npm install在一个命令中安装这两种类型的软件包 如果npm注册表设置为全局,私有包显示404,那么如何通过单个命令实现这一点。我希望两种类型的包都安装在节点_模块上 npm--usercofig=./.npmrccorp i:这将安装package.json中提到的模块,同时考虑--userconfig参数提供的配置文件。最后一个i和install可以互换。也可以将其重写为npm--usercof
npm install
在一个命令中安装这两种类型的软件包
如果npm注册表设置为全局,私有包显示404
,那么如何通过单个命令实现这一点。我希望两种类型的包都安装在节点_模块上 npm--usercofig=./.npmrccorp i
:这将安装package.json
中提到的模块,同时考虑--userconfig
参数提供的配置文件。最后一个i
和install
可以互换。也可以将其重写为npm--usercofig=./.npmrccorp
install
要使用单个npm--usercofig=./.npmrccorp i
命令安装私有和公共软件包,您需要在package.json
dependencies节点中维护依赖项
,然后应该有一个.npmrccorp文件包含您的身份验证令牌,如下所示:
package.json:
{
"dependencies": {
"@org/package1": "^1.0.14",
"@org/package2": "^1.0.0",
"public package1": "^1.5.0",
"public package1": "^2.117.0",
}
}
.npmrccorp
//registry.npmjs.org/:_authToken=a*******-****-****-****-***********1 (32 bit authentication token)
更快的解决方案是@Hugomarsco在评论部分提出的。我假设您的私有包位于任何注册表(A)中,并且剩余的内容是从NPMJ(B)获取的 为了更清楚地说明这一点,您可以使用和设置多个注册表作为上行链路,如图所示 您的上行配置可能如下所示
uplinks:
npmjsA:
url: https://registry.npmjs.org/
registryB:
url: http://mirror.local.net/
然后通过模式定义对每个远程服务器的包访问
packages:
'my-private-*':
access: $authenticated
publish: $authenticated
proxy: registryB
'**':
access: all
publish: $authenticated
proxy: npmjs
这样,您就可以在verdaccio为您提取属于任何公共注册中心的NPMJ时安全地访问您的私人软件包
在你的终端机上,就这么做吧
npm set registry http://localhost:4873
npm install
你已经准备好了。我希望这会有所帮助。在完成所有实验后,我将所有私有包作为一个范围包上传到服务器。与
@private/jsonwrite
一样,@private
是我的作用域名称。然后我在.npmrc
@private:registry=https://npmjs.my-private-repo.net
然后只需运行
npm安装
,即可在远程和全局软件包上运行。这是从.npmrc
给定链接下载的限定范围的包,以及从global npm下载的其他包。据我所知,如果没有以下任何一项,这是不可能的:-如果找不到包,则返回到公共注册表的私有注册表-像Verdaccio这样的注册表代理(此处的更多信息:)要使其工作,应该有一个.npmrccorp
文件,其中包含项目根路径处的私有模块。是现在吗?是的,现在,你能分享你的想法吗。github gist中的nprccorp。那应该对我有帮助。