1. ホーム
  2. node

npm install時にundefinedのプロパティを読み込めない('extraneous'を読み込む)。

2022-02-10 14:07:43
<パス

プロジェクトをベースライン化するために、コンパイル後にローカルプロジェクトのnode_modulesファイルとdistファイルを削除し、ベースライン化後にローカルプロジェクトのコードを再コンパイルすると、前回コンパイルしたプロジェクトパッケージが未定義の "external"properties を読み取れないと表示されてプロジェクトの初期化に失敗しました。 原因は前回コンパイルしたプロジェクトパッケージがきれいに処理されていなかったので、今回の投稿で関連ソリューションを共有する予定です。

エラーメッセージ

ローカルプロジェクトのコンパイルで生成された node_modules フォルダを削除して、プロジェクトを再コンパイルすると、npm install で以下のようなエラーメッセージが表示されます。

admin@MacBook-Pro Project % npm install

未定義のプロパティ 'extraneous' を読み取ることができません。

この実行の完全なログは、以下で見ることができます。

npm ERR! /Users/admin/.npm/_logs/2021-07-16T02_50_26_885Z-debug.log

解析中

上記のエラーメッセージからわかるように、プロジェクトを再コンパイルすると、前回のプロジェクトコンパイル時の package-lock.json ファイルに残っていた三者間パッケージが原因で、未定義の "external" プロパティを読み込めずに失敗しています。プロジェクトビルドのnode_modulesフォルダのみを削除し、package-lock.jsonファイルは削除せずに、直接npm installを行うと、package-lock.jsonに記述されている三者間パッケージのみがインストールされます。

解決方法

解析の結果、一般的にプロジェクトを再コンパイルする際には、node_modules フォルダ以下のすべてのファイルだけでなく、package-lock.json ファイルも削除する必要があることがわかりました。解決方法は以下の通りです。

1. プロジェクトがコンパイルされた node_modules フォルダ以下のファイルをすべて削除し、node_modules フォルダを単純に削除します。

2. プロジェクトのターミナル内でコマンドラインを入力し、以下のようにpackage-lock.jsonファイルを削除してください。

rm -rf パッケージロック.json

または、手動でpackage-lock.jsonファイルを直接削除するだけです。

3. 上記2つのステップの後、プロジェクトを再初期化します。

npmインストール

コンパイルに成功し、いよいよプロジェクトが実行されます。