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 データベース ストアド プロシージャの基本構文の説明

推薦する

HTML+CSSで充電水滴融合特殊効果コードを実現

目次序文:成し遂げる:要約:まず効果を見てみましょう: 序文:このアイデアは、Bilibili のア...

TypeScript インターフェースの紹介

目次1. インターフェース定義2. 属性2.1 オプション属性2.2 読み取り専用プロパティ3. ク...

Ubuntu20のtzselect設定時間失敗問題、Raspberry Piサーバ(推奨)

2 日前、Raspberry Pi サーバーを Ubuntu 20 にアップグレードしました。今日...

MySQL 5.7 のキーワードと予約語の詳細な説明

序文MySQL と Oracle のキーワードはまったく同じではありません。Oracle データベー...

count(1)、count(*)、count(列名)の実行の違いの詳細な説明

実施効果: 1. count(1) と count(*)テーブル内のデータ量が多い場合、テーブルを分...

MySQL データベース グループ クエリの group by ステートメントの詳細な説明

1: グループ化関数の記述順序 1 選択 ... 2 から ... 3 どこで ... 4 グループ...

Webpack プロジェクトでローダー プラグインをデバッグする方法

最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...

検証コード干渉を実装する js (静的)

この記事では、検証コード干渉を実装するためのjsの具体的なコードを参考までに共有します。具体的な内容...

Vue で debouce の手ぶれ補正機能を使用する方法

目次1. 手ぶれ補正機能2. Vueでdebouceの手ぶれ補正機能を使用する1. 手ぶれ補正機能2...

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

React のグローバル状態管理の 3 つの基本メカニズムの調査

目次序文小道具コンテクスト州要約する序文最新のフロントエンド フレームワークはすべて、コンポーネント...

js の通常形式の日付と時刻に 0 を自動的に追加する 2 つのソリューション

目次背景解決策1アイデア:コード:解決策2アイデア:要約する参照する背景日付と時間をフォーマットする...

TomcatとJDKのバージョンの対応と各Tomcatバージョンの機能

Apache Tomcat は、Java Servlet および Java Server Pages...

VMware ESXi のインストールと使用記録(ダウンロード付き)

目次1. ESXiをインストールする2. ESXiをセットアップする3. ESXiを起動するESXi...

MySQLテーブル内の重複データをクエリする方法

hk_test(ユーザー名、パスワード) に値を挿入 ('qmf1', '...