ローカルで開発したLaravel&Vite&React環境をXserverにデプロイすることがありました。
LaravelをデプロイしたはいいもののNode.js環境が整っていなかったため、
Vite manifest not found at: {Laravelパス}/public/build/manifest.json
が発生しました。
Viteは/public/build配下のファイルを参照したいが、それらのファイルがないことで発生しているようです。
そこでNode.jsをインストールして環境を整えていきましょう。
ゴールとしてはnpm run buildを行い、前述エラーを解決することです。
前提
XserverにSSH接続ができる
現状の確認
nodeもnpmも入っていません。
$ node -v
-bash: node: コマンドが見つかりません
$ npm -v
-bash: npm: コマンドが見つかりません
実際にインストールを進めよう
nodebrewをインストール
nodebrewはNode.jsのバージョン管理ツールです。下記コマンドでインストールとセットアップをします。
$ wget git.io/nodebrew
.
.略
2024-05-10 21:13:46 (186 MB/s) - `nodebrew' へ保存完了 [26039/26039]
$ perl nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew
========================================
Export a path to nodebrew:
export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================
.bash_profileを編集してパスを通します。
$ vi ~/.bash_profile
# PATH=$PATH:$HOME/bin # コメントアウト
PATH=$HOME/.nodebrew/current/bin:$HOME/bin:$PATH # 追加
おなじみsourceコマンドで再読み込みします。
$ source ~/.bash_profile
nodebrewが入ったかバージョンを確認します。
$ nodebrew --version
nodebrew 1.2.0
Node.jsをインストール
ではnode.jsをインストールしましょう。
$ nodebrew install stable
Fetching: https://nodejs.org/dist/v22.1.0/node-v22.1.0-linux-x64.tar.gz
######################################################################## 100.0%
Installed successfully
successfullyと表示されたのでインストール完了したようです。
インストールされたnode.jsのバージョンを確認してみましょう。
$ nodebrew list
v22.1.0
v22.1.0がインストールされたようなので(2024年5月10日時点)、以下コマンドで有効にします。
$ nodebrew use v22.1.0
nodeのバージョン確認
node.jsとnpmのバージョンをそれぞれ確認してみます。
$ node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
私の場合、上記not foundエラーが発生してしまいました。インストール可能なnodeのバージョンを確認してそのバージョンをいれることにします。
(結局バージョンを少しずつ下げていってv16.20.2を入れました。)
$ nodebrew ls-remote
~略~
v16.14.2 v16.15.0 v16.15.1 v16.16.0 v16.17.0 v16.17.1 v16.18.0 v16.18.1
v16.19.0 v16.19.1 v16.20.0 v16.20.1 v16.20.2
~略~
$ nodebrew install v16.20.2
$ nodebrew use v16.20.2
$ node -v
v16.20.2
問題なくバージョンが表示されました。
npmのバージョン確認
こちらも問題なさそうです。
$ npm -v
8.19.4
npm run buildも無事通りました。
最後に
今回はXserverにNode.jsをインストールをしてnpmを使えるところまでをご紹介しました。