我正在尝试使用AWS CodeArtifact使用私有回购。那里的指令提到执行aws-cli
npm登录命令。这个登录命令从AWS获取一个令牌,并将其放置在用户.npmrc
中。
我曾尝试将此登录函数放在项目package.json
中的preinstall
脚本中,但问题是.npmrc
仅在此步骤中进行修改,在执行yarn install
任务时不会重新加载。
有没有办法将此令牌加载到yarn
中,同时保持登录/安装过程的无缝?
与其他答案类似,但稍微简单一点,我将其添加为预安装脚本
要登录的代码在preinstall.js文件中的位置。也可以使用AWS CLI命令。
"preinstall": "node preinstall.js && yarn install --ignore-scripts && yarn postinstall && exit 0"
我在gcloud上也遇到过类似的问题。我设法破解了它,在package.json
上添加了一个纱线预装挂钩
"preinstall": "yarn install --ignore-scripts; kill -9 $(ps | grep 'yarn.js install' | awk 'NR==1' | awk '{print $1}')"
它总是没有必要也杀死纱线安装。您的";第二个";安装只会得到一个缓存命中,而且速度会很快。
也可以添加/bin/bash -c ' if [[ -n ${ENV_VARIABLE:-} ]]; then blabla; fi'
,使命令仅在所需的环境中运行。