[英]Can I have two .npmrc files in a project directory?
我正在使用私有 npm 注册表 (AWS CodeArtifact)。 为了让开发人员更容易配置,我在项目目录中创建了一个.npmrc
文件,其中包含私有(范围)注册表 url。
我向 package.json 文件upgrade
添加了一个命令,它将:
"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 分钟),我想避免这种情况。
我考虑过的选项:
&& npm config delete //my-org-55555....:authToken
到pc:upgrade
的末尾以删除令牌。 这是不可靠的,以防操作提前终止。.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.