CircleCIでnvmをセットアップする
色々とハマってしまったので、共有しておきます。きっと誰かの役に立つでしょう。
簡単に言うと、CircleCIで nvm を使う場合は、 nvm.sh
に --install
--no-use
オプションを渡しておきましょう、ということです。以下は、設定ファイルからコマンド実行部分だけを抜粋したものです。
- checkout
- run:
name: Setup Node.js via nvm
command: |
curl --silent -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
echo 'export NVM_DIR="$HOME/.nvm"' >> $BASH_ENV
echo 'source "$NVM_DIR/nvm.sh" --no-use' >> $BASH_ENV
source $BASH_ENV
nvm install --latest-npm --no-progress
nvm alias default
sed -i -e 's/ --no-use//' $BASH_ENV
- run:
name: Verify
command: node -v && npm -v
インストール時に、一時的に --no-use
オプションを付けてエラーを回避し、インストールが成功したら --no-use
オプションを削除します。
プロジェクトルートに .nvmrc
ファイルがある場合、--install
--no-use
オプションを付けないと nvm install
に失敗します(CircleCI上のログを見ると、終了ステータス3を返してます)。以下は、検証用のプルリクエストです。
- https://github.com/ybiquitous/circleci-nvm-setup/pull/4
- https://circleci.com/gh/ybiquitous/circleci-nvm-setup/13
--install
オプションはドキュメントに書かれてないのですが、コードを見ると古くからあることがわかります。ただし、ドキュメント化されてないので将来こっそり削除される不安があります…
https://github.com/nvm-sh/nvm/blob/3d9c31d94488884e74ae1ba0d46bc6607bc74667/nvm.sh#L3575
--no-use
オプションはREADMEに書かれてますね!
https://github.com/nvm-sh/nvm#install--update-script
検証用のリポジトリはこちらです。
ybiquitous/circleci-nvm-setup: A way to setup nvm on CircleCI
Author And Source
この問題について(CircleCIでnvmをセットアップする), 我々は、より多くの情報をここで見つけました https://qiita.com/ybiquitous/items/46c9370bdeda6eab411a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .