Node.jsのコマンド実行時にメモリが足りないエラーが発生

2022/1/04

(最終更新: 2022/9/10

はじめに

以下手順にしたがって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

再度同じコマンドを実行すると、最後まで完了させることができた。

おわりに

メモリが足りないエラーが出たのが初めてだったので少し苦戦した。

参考資料



個別連絡はこちらへ→Twitterお問い合わせ

プロフィール

プロフィールイメージ

はち子

事業会社のシステム部門で働きはじめて5年目の会社員。システム企画/要件定義/システムアーキテクチャ等。

Twitter→@bun_sugi

過去の記事について

はてなブログに掲載の記事(主にプログラミングメモ)についてはこちらに掲載しております。(本ブログに移行中)

タグ一覧

関連記事

Copyright© 2023, エンジニアを目指す日常ブログ

お問い合わせ|プライバシーポリシー