はじめに
以下手順にしたがってgatsbyによるWebページ作成を試していたところ、想定外のエラーが発生した。Vagrantコマンドを用い、VirtualBoxに割り当てるメモリを大きくすることで解決したので、対処法をメモ。
発生したエラー
以下コマンドで gatsbyプロジェクトを作成したところ、エラーが発生した。
$ gatsby new hello-world https://github.com/gatsbyjs/gatsby-starter-hello-world
発生したエラー
npm ERR! code ENOMEM
npm ERR! syscall spawn
npm ERR! errno -12
npm ERR! spawn ENOMEM
npm ERR! code ENOMEM
npm ERR! syscall spawn
npm ERR! errno -12
npm ERR! spawn ENOMEM
npm ERR! A complete log of this run can be found in:
ERROR
Command failed with exit code 244: npm install
Error: Command failed with exit code 244: npm install
対処方法
code ENOMEM syscall spawn errno -12
で検索すると、メモリが足りないことを示すエラーのようだった。
Vagrant + VirtualBoxを用いて仮想Linuxサーバ上で実行しているため、仮想環境に割り当てているメモリが足りないことが想定される。
そこで、仮想環境の設定ファイルVagantfile
を変更した。
①Vagrantを終了
$ vagrant halt
②設定ファイルの修正
vb.memory
の値を1024から2048に変更した。(値はマシンスペックと相談しながら決めてください)
Vagrantfile
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
Vagrantfile
の全量はこちら。
Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.network "forwarded_port", guest: 8000, host: 8000
config.vm.synced_folder "./workspace", "/home/vagrant/workspace"
config.vm.provider :virtualbox do |vb|
vb.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/home/vagrant/workspace","1"]
vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
vb.customize ["modifyvm", :id, "--uartmode1", "file", File::NULL]
end
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048" vb.customize ['modifyvm', :id, '--cableconnected1', 'on']
end
config.vm.provider "virtualbox" do |v|
v.gui = true
end
end
③Vagrantの立ち上げ
$ vagrant up
$ vagrant ssh
再度同じコマンドを実行すると、最後まで完了させることができた。
おわりに
メモリが足りないエラーが出たのが初めてだったので少し苦戦した。