我在package.json文件中列出了一些npm包,有些是公共的,有些是私有的。我想使用npm install
在单个命令中安装这两种类型的包。
如果在全局私有包上设置npm注册表显示404
,那么如何通过单个命令实现这一点。我希望在node_modules上安装两种类型的包。
答案 0 :(得分:2)
更快的解决方案是@hugomarisco在评论部分提出的建议。我假设你的私人包在任何注册表(A)中,其余的是从npmjs(B)获取的。
为了更清楚,您可以使用verdaccio并将多个注册表设置为上行链路,如此处所示。
您的上行链路配置可能如下所示
WEB-INF/lib
然后只需通过模式
定义对每个远程的包访问uplinks:
npmjsA:
url: https://registry.npmjs.org/
registryB:
url: http://mirror.local.net/
通过这种方式,您可以安全地访问您的私人软件包,而 verdaccio 为您提供属于任何公共注册表的npmjs。
在您的终端中,只需执行
packages:
'my-private-*':
access: $authenticated
publish: $authenticated
proxy: registryB
'**':
access: all
publish: $authenticated
proxy: npmjs
然后你就定了。我希望有所帮助。
答案 1 :(得分:0)
npm --usercofig=./.npmrccorp i
:这将考虑package.json
参数提供的配置文件,安装--userconfig
中提到的模块。最后i
和install
可以互换。这可以重写为npm --usercofig=./.npmrccorp
安装
要使用单npm --usercofig=./.npmrccorp i
命令安装私有和公共包,您需要维护dependencies
依赖关系节点中的package.json
,然后应该有一个包含您的身份验证令牌的.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)
答案 2 :(得分:0)
完成所有实验后,将我的所有私有包作为一个范围包。与@private/jsonwrite
一样,@private
是我的范围名称。然后我在.npmrc
@private:registry=https://npmjs.my-private-repo.net
然后只运行npm install
,它适用于远程和全局包。这是从.npmrc
给定链接和其他来自全球npm的其他人的范围包下载。