繁体   English   中英

我可以在项目目录中有两个.npmrc 文件吗?

[英]Can I have two .npmrc files in a project directory?

我正在使用私有 npm 注册表 (AWS CodeArtifact)。 为了让开发人员更容易配置,我在项目目录中创建了一个.npmrc文件,其中包含私有(范围)注册表 url。

我向 package.json 文件upgrade添加了一个命令,它将:

  1. 使用 aws cli 获取授权令牌
  2. 使用以下命令将身份验证令牌存储在 local.npmrc 文件中:
        "pc:login": "FOR /F %T IN ('aws codeartifact get-authorization-token --domain my-org  --domain-owner 55555555555 --region us-east-2 --query authorizationToken --output text --duration-seconds 900') do (npm config set //my-org-5555555555555.d.codeartifact.us-east-2.amazonaws.com/npm/my-org/:_authToken %T --userconfig .npmrc)",
        "pc:upgrade": "yarn run pc:login && yarn upgrade @my-org/my-package"

所以开发人员所要做的就是运行yarn pc:upgrade

但是,授权令牌存储在 local.npmrc 中,因此有机会签入令牌(AWS 允许的最短过期时间为 15 分钟),我想避免这种情况。

我考虑过的选项:

  1. 添加&& npm config delete //my-org-55555....:authTokenpc:upgrade的末尾以删除令牌。 这是不可靠的,以防操作提前终止。
  2. .npmrc文件添加到.gitignore ,这样它就永远不会被签入。但是,这将需要将注册表 url 设置存储在其他地方(我可以将它放在用户配置中,但这需要额外的配置)。

如果可以在一个项目目录中有两个.npmrc 文件——我可以让一个 git 跟踪注册表 url,并让另一个“私有”和 git 忽略。

解决方案是将 authToken 存储在用户的 npmrc 中。 这允许我将注册表 URL 存储在项目本地共享的 .npmrc 文件中,而 auth 令牌将保留在用户框的本地。

解决方法是在我的pc:login脚本--userconfig.npmrc替换为--local

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM