【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