Linux の fsevents モジュールによって発生する npm ls エラーの解決方法の詳細な説明

Linux の fsevents モジュールによって発生する npm ls エラーの解決方法の詳細な説明

Mac で開発されたプロジェクトがあり、パッケージ npm i がインストールされており、すべて正常です。

このプロジェクトを Linux マシンに配置し、パッケージ npm i をインストールすると、一連の警告が報告されます。

npm 警告 オプション スキップ オプション 依存関係: fsevents@^1.2.7 (node_modules/chokidar/node_modules/fsevents):
npm 警告 notsup オプションの依存関係をスキップします: [email protected] ではサポートされていないプラットフォームです: 必要なのは {"os":"darwin","arch":"any"} (現在: {"os":"linux","arch":"x64"})
npm WARN [email protected] 説明なし
npm WARN [email protected] リポジトリ フィールドがありません。
npm 警告 オプション スキップ オプション 依存関係: [email protected] (node_modules/fsevents/node_modules/abbrev):
npm 警告 enoent オプションの依存関係をスキップします: ENOENT: そのようなファイルまたはディレクトリはありません。'/root/2019/0403/node_modules/fsevents/node_modules/abbrev' を '/root/2019/0403/node_modules/fsevents/node_modules/.abbrev.DELETE' に名前変更します
npm 警告 オプション スキップ オプション 依存関係: [email protected] (node_modules/fsevents/node_modules/ansi-regex):
npm 警告 enoent オプションの依存関係をスキップします: ENOENT: そのようなファイルまたはディレクトリはありません。'/root/2019/0403/node_modules/fsevents/node_modules/ansi-regex' を '/root/2019/0403/node_modules/fsevents/node_modules/.ansi-regex.DELETE' に名前変更してください
npm 警告 オプション スキップ オプション 依存関係: [email protected] (node_modules/fsevents/node_modules/aproba):
npm 警告 enoent オプションの依存関係をスキップします: ENOENT: そのようなファイルまたはディレクトリはありません。'/root/2019/0403/node_modules/fsevents/node_modules/aproba' を '/root/2019/0403/node_modules/fsevents/node_modules/.aproba.DELETE' に名前変更してください
npm 警告 オプション スキップ オプション 依存関係: [email protected] (node_modules/fsevents/node_modules/balanced-match):
npm 警告 enoent オプションの依存関係をスキップします: ENOENT: そのようなファイルまたはディレクトリはありません。'/root/2019/0403/node_modules/fsevents/node_modules/balanced-match' を '/root/2019/0403/node_modules/fsevents/node_modules/.balanced-match.DELETE' に名前変更します
npm 警告 オプション スキップ オプション 依存関係: [email protected] (node_modules/fsevents/node_modules/chownr):
npm 警告 enoent オプションの依存関係をスキップします: ENOENT: そのようなファイルまたはディレクトリはありません。'/root/2019/0403/node_modules/fsevents/node_modules/chownr' を '/root/2019/0403/node_modules/fsevents/node_modules/.chownr.DELETE' に名前変更します
npm 警告 オプション スキップ オプション 依存関係: [email protected] (node_modules/fsevents/node_modules/code-point-at):
npm 警告 enoent オプションの依存関係をスキップします: ENOENT: そのようなファイルまたはディレクトリはありません。'/root/2019/0403/node_modules/fsevents/node_modules/code-point-at' を '/root/2019/0403/node_modules/fsevents/node_modules/.code-point-at.DELETE' に名前変更してください
...

npm ls を実行すると、UNMET OPTIONAL DEPENDENCY モジュールが多数存在し、最後に多くのエラーが報告されます。

│ ├── [email protected] 重複排除
│ ├── [email protected] 重複排除
│ ├── [email protected] 重複排除
│ └─┬ [email protected]
│ └── [email protected]
├─┬ 満たされていないオプションの依存関係 [email protected]
│ ├── [email protected]
│ └─┬ 満たされていないオプションの依存関係 [email protected]
│ ├── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていない依存関係 [email protected]
│ │ └── 満たされていない依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係[email protected]
│ │ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ └── 満たされていないオプションの依存関係 [email protected]
│ │ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ └── 満たされていないオプションの依存関係 [email protected]
│ │ └── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ └─┬ 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ └── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ └─┬ 満たされていない依存関係 [email protected]
│ │ │ └─┬ 満たされていない依存関係 [email protected]
│ │ │ ├── 満たされていない依存関係 [email protected]
│ │ │ └── 満たされていない依存関係 [email protected]
│ │ └── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ └─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていない依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていない依存関係 [email protected]
│ │ │ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ │ └── 満たされていない依存関係 [email protected]
│ │ │ └── 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていない依存関係 [email protected]
│ │ ├─┬ 満たされていないオプションの依存関係ゲージ@2.7.4
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていない依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ │ ├─┬ 満たされていない依存関係 [email protected]
│ │ │ │ ├── 満たされていない依存関係 [email protected]
│ │ │ │ ├─┬ 満たされていない依存関係 [email protected]
│ │ │ │ │ └── 満たされていない依存関係 [email protected]
│ │ │ │ └── 満たされていない依存関係 [email protected]
│ │ │ ├─┬ 満たされていない依存関係 [email protected]
│ │ │ │ └── 満たされていない依存関係 [email protected]
│ │ │ └─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ └── 満たされていない依存関係 [email protected]
│ │ └── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ └── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ └─┬ 満たされていないオプションの依存関係 [email protected]
│ │ ├── 満たされていないオプションの依存関係 [email protected]
│ │ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ │ ├── 満たされていない依存関係 [email protected]
│ │ │ └── 満たされていない依存関係 [email protected]
│ │ ├── 満たされていない依存関係 [email protected]
│ │ ├── 満たされていない依存関係 [email protected]
│ │ ├─┬ 満たされていない依存関係 [email protected]
│ │ │ └── 満たされていない依存関係 [email protected]
│ │ └── 満たされていないオプションの依存関係 [email protected]
│ ├── 満たされていないオプションの依存関係 [email protected]
│ └─┬ 満たされていないオプションの依存関係 [email protected]
│ ├── 満たされていないオプションの依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ └── 満たされていない依存関係 [email protected]
│ ├─┬ 満たされていない依存関係 [email protected]
│ │ ├── 満たされていない依存関係 [email protected]
│ │ └── 満たされていない依存関係 [email protected]
│ ├─┬ 満たされていないオプションの依存関係 [email protected]
│ │ └── 満たされていない依存関係 [email protected]
│ ├── 満たされていない依存関係 [email protected]
│ ├── 満たされていない依存関係 [email protected]
│ └── 満たされていない依存関係 [email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] 重複排除
│ └── パスディレクトリ名@1.0.2
├── 継承@2.0.3
├─┬ バイナリパス@1.0.1
│ └── バイナリ拡張機能@1.13.1
├─┬ [email protected]
│ └── [email protected]
├── 正規化パス@3.0.0
├── パスは絶対@1.0.1
├─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected] 重複排除
│ └─┬ 読み取り可能なストリーム@2.3.6
│ ├── [email protected]
│ ├── [email protected] 重複排除
│ ├── [email protected]
│ ├── [email protected]
│ ├── セーフバッファ@5.1.2
│ ├─┬ 文字列デコーダー@1.1.1
│ │ └── [email protected] 重複排除
│ └── [email protected]
└── [email protected]
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要です
npm エラー! 見つかりません: [email protected][email protected] で必要
npm エラー! 見つかりません: [email protected][email protected] で必要
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! 不足しています: [email protected][email protected] で必須
npm エラー! 不足しています: [email protected][email protected] で必須
npm エラー! 不足しています: [email protected][email protected] で必要です
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! 不足: [email protected][email protected] で必要
npm エラー! 見つかりません: [email protected][email protected] で必要
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要
npm エラー! 見つかりません: [email protected][email protected] で必要
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要です
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! [email protected] がありません。[email protected] で必要です
npm エラー! 不足しています: [email protected][email protected] で必要

注意深く観察すると、UNMET OPTIONAL DEPENDENCY モジュールと npm ERR は同じモジュールであり、インストール中に警告を報告するモジュールでもあることがわかりました。

よく見ると、これらはすべて fsevents が依存するモジュールであることがわかります。

fsevents は macOS にのみインストールでき、Linux システムにはインストールできません。 Linux では fsevents モジュールはスキップされ、fsevents が依存するモジュールはインストールされません。

これは実際には npm のバグです。npm i は Warn を報告し、npm ls は Err を報告しますが、これは一貫性がなく、誤解を招きやすいものです。

現在、この問題は npm のどのバージョンを使用しても発生し、npm i --no-optional ではこの問題を解決できません。

Linux では fsevents は必要ないため、これらのエラーはプロジェクトの通常の操作には影響しません。

npm Err を表示したくない場合は、npm i -f を使用してインストールを強制することができます。インストール中に警告は表示されません。インストール後、npm ls を実行して以下を確認します。

└─┬ ちょきだーる@2.1.5
└── [email protected] 

きれい、エラーなし。

私のプロジェクトは chokidar です。これは fsevents に依存するモジュールであり、chokidar は browser-sync、webpack などに依存します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux でタイムアウト付きの接続関数を試す
  • Linux 上での Go 環境の構築のインストールと設定の説明
  • Linux の cut コマンドの使用法の概要
  • Linuxシステムの入出力管理とvimの共通機能の詳細な説明
  • Linux シェル - 識別によってファイル システム属性をテストする方法の例
  • Linux シェルにおける if のさまざまな判断
  • Linux シェルの pushd、popd、dirs の使用方法の説明
  • Linux シェル コンソールでさまざまな色のフォントと背景を印刷する方法
  • Linux で so または実行可能プログラムの依存ライブラリを表示します
  • Linuxのアラーム機能の例の説明

<<:  Linux での MySQL データベースのマスター スレーブ同期レプリケーション構成

>>:  Mysql データベース ストアド プロシージャの基本構文の説明

推薦する

Dockerを使用してDjango+MySQL8開発環境をデプロイする方法の詳細な説明

しばらく前にシステムを再インストールしましたが、バックアップを取っていなかったので、コンピューター上...

jsを使用してシンプルな虫眼鏡効果を実現します

この記事では、簡単な虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有します。具体的な内...

Nginx イントラネット スタンドアロン リバース プロキシの実装

目次1 Nginxのインストール2 Nginxの設定3 ホストファイルを変更する4 テストNginx...

すべてまたは逆の選択機能を実現するJavaScript

この記事では、全選択または選択を反転する機能を実現するためのJavaScriptの具体的なコードを参...

Vueでeslintを使用する方法の詳細な説明

目次1. 説明2. 関連する依存パッケージをダウンロードする3. 設定ファイル .eslintrc....

Linux での VMWare15.5 のインストールに関するチュートリアル

Linux に VMWare をインストールするには、公式 Web サイト https://www....

JavaScript を使用した数独の完全な実装プロセス

目次序文数独の解き方最初のボックスに記入してください2番目のボックスに記入してください3番目のボック...

MySql でリモート接続を許可する方法

MySql でリモート接続を許可する方法この目標を達成するには、2つのことを行う必要がある。ユーザー...

HTML ページ ヘッダー コード例の詳細な説明

知識ポイント1: ヘッダー情報にWebページのベースURLを設定するベース URL の本質は、ハイパ...

jsでの位置計算を徹底的に理解するのに役立つ記事

目次導入スクロール要素.スクロール()要素.scrollHeight/scrollWidth要素.s...

MySql バッチに挿入するときにデータの重複を避ける方法

目次序文1. ignore を挿入2. 重複キーの更新時3. を置き換える要約する序文Mysql は...

JavaScript による省・市連携効果の実現

この記事では、省と都市間の連携効果を実現するためのJavaScriptの具体的なコードを参考までに共...

Dockerコンテナのネットワーク管理とネットワーク分離の実装

1. Dockerネットワーク管理1. Dockerコンテナ方式1) Dockerが外部ネットワーク...

HTML テーブル マークアップ チュートリアル (38): ヘッダーの境界線の色属性 BORDERCOLOR

テーブルを美しくするために、ヘッダーに異なる境界線の色を設定できます。基本的な構文<TH 境界...

ログインインターフェースの使いやすさとセキュリティのバランスをとる方法

ウェブデザイナーでもUIデザイナーでも、ログインページや登録ページのデザインは必ず経験しなければなら...