2020年6月14日 • ☕️ 2 min read

Pleskでnodejsアプリをデプロイするとき、git pullした後、yarn install && yarn buildでプロジェクトをビルドする必要があるからです。

Pleskの追加デプロイメントアクションで、pull後コマンドの実行が簡単にできます。(ウェブサイトとドメインのGitリポジトリに)

additional-deployment-actions.jpg

しかし、ここに設定したと関わらず、node_modulesの生成されない問題が発生しました。言い換えると、yarn installが走っていないか、走ったがエラーになったことでしょう。

調査

  1. Pleskのdebug modeに切り替える

    設定方法はこちらへ:https://support.plesk.com/hc/en-us/articles/213408889-How-to-enable-disable-Plesk-debug-mode

  2. ログを確認

    Copy
    sudo tail -f /var/log/plesk/panel.log

    ウェブサイトとドメインのGitリポジトリにアップデートをプルを押したら、処理ログの確認ができます。

    Copy
    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)
  3. Google先生に聞く

    原因はなんとnpmのバージョンが古い。Pleskのウェブサイトとドメインにちゃんと正しいnodejsのバージョンを設定したが、実際にyarnを実行するとき、システムの古いnpmを参照しているかもしれませんね。追加デプロイメントアクションnpm -vを追加して確認すると、やっぱりバージョンが古くて、3.5.2でした

対策

システムのnodejsのバージョンアップ(ubuntuを例、現時点のLTS nodejs 10を)

Copy
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

apt-get install -y nodejs

確認

node_modulesフォルダが正常に生成されました。panel.logにもエラーログがありません。

最後

Pleskのdebug modeをオフにすることをお忘れずにしてください。


関連投稿

.Net CoreのプロジェクトをPleskにデプロイ

2020年7月6日

nodemailerでgmailのアカウントを利用して送信する

2020年6月13日

ThunderMiracle

Blog part of ThunderMiracle.com