【Node.js】nvmがcronで反映されなかった話
こんにちは、フリーランスエンジニアの太田雅昭です。
nvm
nvmは、node.jsのバージョン管理ツールです。通常のコマンドだと問題ないのですが、cronではnvmが初期化されません。そのため、古いバージョンのnode.jsが使われてしまったりします。
nvmを強制的に反映させる
以下のようにします。
* * * * * . ~/.nvm/nvm.sh && your-command
.nvm/nvm.shを呼び出すことで、nvmの初期化を行なっています。
ちなみにsource ~/.bashrcも試したのですが、これではnode.jsのバージョンは古いままでした。明示的にnvmを初期化する必要があるようです。
場合によっては、以下も必要かもしれません。
SHELL=/bin/bash
* * * * * . ~/.nvm/nvm.sh && your-command