2
0

More than 1 year has passed since last update.

Vagrant環境でnpm installができない時に試すべきこと

Last updated at Posted at 2021-08-28

目次

  • はじめに
    • 開発環境
    • 前提
  • 生じた問題
  • 対応策
  • まとめ
  • 参考記事

はじめに

この記事では、Vagrantを用いてnpm installを行おうとしたときに生じたエラーについて扱います。
私の開発環境は以下の通りですので、ホストOSがwindows環境の方などは注意してください。

開発環境

ハードウェア

項目 内容
OS mac OS Big Sur 11.5
端末種類 MacBook Air (Retina, 13-inch, 2020)
プロセッサ 1.1 GHz クアッドコアIntel Core i5
メモリ 16 GB 3733 MHz LPDDR4X
 グラフィックス Intel Iris Plus Graphics 1536 MB

ソフトウェア

項目 ホストOSバージョン ゲストOSバージョン
Vagrant 2.2.13 -
VirtualBox 6.1.16 -
node.js 16.0.0 8.16.2->10.16.2
npm 7.10.0 6.4.1->6.9.0

私の場合は、上記に加えて、チーム開発のためpackage.jsonが既に与えられている状態でした。

生じた問題

  • npm installを行うと、以下のようなエラーが出ました。
vagrant(terminal)
npm ERR! path /home/vagrant/code/node_modules/acorn-dynamic-import/node_modules/acorn/package.json.2270336935
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open '/home/vagrant/code/node_modules/acorn-dynamic-import/node_modules/acorn/package.json.2270336935'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

対応策

まず、Vagrantの共有フォルダ上で'npm install'が動かない場合の対処法およびnpm トラブルシューティングを試してみてください。
私の環境下では、上記方法でも解決しませんでした。そのため、以下の対処を行いました。

  • vagrantにnvmをインストールした。
  • その後、nvmを用いて、node.jsとnpmのバージョンアップを行いました。
    • 用いるべきバージョンは、各人によって異なります。
    • 上記問題の原因は、package.jsonにおいて求められているnode/npmのバージョンが、ゲストOS環境のnode/npmバージョンと一致していないことにあります。
    • そのため、ホストOSのnode/npmのバージョンがpackage.jsonの必要とするバージョンを満たす場合、上記URLの「ホスト側でnpm installする」ことで解決することになります。
    • ホストOS, ゲストOSのどちらもがnode/npmのバージョン条件を満たさないために、エラーが残ってしまっていたみたいです。
    • 私の場合は、nodeを10.16.2にアップグレードすることで利用可能になりました。
    • バージョンを上げすぎてもpackage.json側の要件によってはエラーが生じるため、いくつかバージョンを変えて試してみてください。

まとめ

  1. Vagrantの共有フォルダ上で'npm install'が動かない場合の対処法
  2. npm トラブルシューティング
  3. node.jsとnpmのバージョンを、package.jsonの条件にしたがってアップデートする。

参考記事

gitにissueがありました。
NPM Install failing on clean homestead box

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0