Pleskでnodejsアプリをデプロイするとき、git pull
した後、yarn install && yarn build
でプロジェクトをビルドする必要があるからです。
Pleskの追加デプロイメントアクション
で、pull後コマンドの実行が簡単にできます。(ウェブサイトとドメインのGitリポジトリに)
しかし、ここに設定したと関わらず、node_modulesの生成されない問題が発生しました。言い換えると、yarn install
が走っていないか、走ったがエラーになったことでしょう。
調査
-
Pleskのdebug modeに切り替える
設定方法はこちらへ:https://support.plesk.com/hc/en-us/articles/213408889-How-to-enable-disable-Plesk-debug-mode
-
ログを確認
sudo tail -f /var/log/plesk/panel.log
ウェブサイトとドメインのGitリポジトリに
アップデートをプル
を押したら、処理ログの確認ができます。Finished in 0.3238s, Error code: 1, stdout: , stderr: /usr/share/yarn/lib/cli.js:46099 let { ^ SyntaxError: Unexpected token { at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:374:25) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) at require (internal/module.js:12:17) at Object.<anonymous> (/usr/share/yarn/bin/yarn.js:24:13) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10)
-
Google先生に聞く
原因はなんとnpmのバージョンが古い。Pleskのウェブサイトとドメインにちゃんと正しいnodejsのバージョンを設定したが、実際にyarnを実行するとき、システムの古いnpmを参照しているかもしれませんね。
追加デプロイメントアクション
にnpm -v
を追加して確認すると、やっぱりバージョンが古くて、3.5.2
でした
対策
システムのnodejsのバージョンアップ(ubuntuを例、現時点のLTS nodejs 10を)
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
apt-get install -y nodejs
確認
node_modulesフォルダが正常に生成されました。panel.log
にもエラーログがありません。
最後
Pleskのdebug modeをオフにすることをお忘れずにしてください。