Node.js 如何运行AWS codeartifact登录并保留默认存储库

Node.js 如何运行AWS codeartifact登录并保留默认存储库,node.js,amazon-web-services,aws-codeartifact,.npmrc,Node.js,Amazon Web Services,Aws Codeartifact,.npmrc,我在package.json文件(scriptspreinstall)或(scriptsprepare)中运行此命令: 我的.npmrc文件已修改: registry=https://registry.npmjs.org @my-npm:registry=https://my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/ registry=https://my-domain-<1234

我在package.json文件(
scripts
preinstall
)或(
scripts
prepare
)中运行此命令:

我的
.npmrc
文件已修改:

registry=https://registry.npmjs.org
@my-npm:registry=https://my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
registry=https://my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
@my-npm:registry=https://my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
//my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/my-repo/:always-auth=true
//my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/my-repo/:_authToken=eyJ2ZXIiOjEsIml....
注册表=https://my-domain-.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
@我的npm:注册表=https://my-domain-.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
//my domain-.d.codeartifact.eu-west-1.amazonaws.com/npm/my repo/:always auth=true
//我的域名-.d.codeartifact.eu-west-1.amazonaws.com/npm/my repo/:_authToken=eyJ2ZXIiOjEsIml。。。。
但我需要保留这个:

registry=https://registry.npmjs.org
@my-npm:registry=https://my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
//my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/my-repo/:always-auth=true
//my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/my-repo/:_authToken=eyJ2ZXIiOjEsIml....
注册表=https://registry.npmjs.org
@我的npm:注册表=https://my-domain-.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
//my domain-.d.codeartifact.eu-west-1.amazonaws.com/npm/my repo/:always auth=true
//我的域名-.d.codeartifact.eu-west-1.amazonaws.com/npm/my repo/:_authToken=eyJ2ZXIiOjEsIml。。。。
在命令行末尾添加
--namespace@my npm


此参数仅添加了更改
.npmrc
文件中的范围
@my npm:registry=…

我一直在使用的解决方案是使用
aws codeartifact登录--工具npm--存储库我的repo--域我的域
来登录aws。我使用了一种更精细的方法,使用以下命令:

# get endpoint 
endpoint = aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm

# set a scoped registry
npm config set registry endpoint --scope=@my-package

# get token
token = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --repository my_repo

# set token
npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=token

# always truth
npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true
这些命令是对
aws CodeArtifactLogin--tool npm--repository my repo--domain my domain
()的解构,不同之处在于,不是在
上设置常规
注册表
。npmrc
文件(用于设置npm的配置)将设置一个作用域注册表()。 通过这种方式,您将能够让您从您想要的来源获取您的包。
将此应用于
package.json
您可以将这些命令插入
co:login
的值,甚至可以将这些命令隔离在脚本中,并将这些脚本称为值。

这并不能回答问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-我希望在答案中看到这种解释。我们需要提供完整的答案和解释,以便人们能够理解,而不是伪造副本paste@MarekUrbanowicz是的,这回答了问题。如果在命令行末尾添加--namespace
@my npm
,则默认注册表不受影响。
registry=https://registry.npmjs.org
@my-npm:registry=https://my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/-repo/
//my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/my-repo/:always-auth=true
//my-domain-<123456789>.d.codeartifact.eu-west-1.amazonaws.com/npm/my-repo/:_authToken=eyJ2ZXIiOjEsIml....
# get endpoint 
endpoint = aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm

# set a scoped registry
npm config set registry endpoint --scope=@my-package

# get token
token = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --repository my_repo

# set token
npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=token

# always truth
npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true