npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:unsupported platform for fsevents@1.0.14


113

私のミニマッチバージョンを3.10.9に更新した後、このプロジェクトhttps://github.com/Soundnode/soundnode-appを実行しようとしています。このエラーが発生します。

npm WARNオプションのスキップオプションの依存性:fsevents@^1.0.0(node_modules \ webpack \ node_modules \ watchpack \ node_modules \ chokidar \ node_modules \ fsevents):npm WARN notsup SKIPPING OPTIONAL DEPENDENCY:Unsupported platform for fsevents @ "1.0.14: os ":" darwin "、" arch ":" any "}(現在:{" os ":" win32 "、" arch ":" ia32 "})

私の構成はノードv-4.4.2 npm v- 3.10.9で、32ビットWindows OSで動作しています。


1
私にはエラーのように聞こえません-これにもかかわらず、コードの実行に問題がありますか?npm WARNそれだけです-注意する価値があるかもしれませんが、実際には何も壊しませんでした警告。
Aurora0001

2
また、この特定の警告は、プラットフォームが要件に適合しなかったためにオプションの依存関係がインストールされなかったことを通知するだけです。この場合、それはダーウィンを探しており、あなたはwin32にいます
Dave V

そのうんざりしたプロジェクト、このコマンド「npm install -g grunt-cli」を実行した後、この警告が表示されたときにnpm installを実行しようとしました
Aishwary Tiwari

1
@AishwaryTiwari、実際にエラーが発生しましたか、それともコードが機能しませんか?警告は実際の問題である可能性は低いです(エラーメッセージが示すように)、オプションの依存関係がスキップされたためです。
Aurora0001

1
問題を修正するプルリクエストがあります:github.com/npm/npm/pull/19198そのプルリクエストをサブスクライブできるため、クローズされるときに更新を取得できます。
RiZKiT

回答:


150

これは警告であり、エラーではありません。これfseventsは、プロジェクトがmacOS環境で実行されている場合にのみ使用されるオプションの依存関係であるために発生します(パッケージは「Mac OS-X FSEventsへのネイティブアクセス」を提供します)。

また、Windowsでプロジェクトを実行しているので、fseventsは無関係としてスキップされます。

この動作を修正するためのPRがここにあります:https : //github.com/npm/cli/pull/169


35
オプションであり、それ自体に矛盾する依存関係があるものではありませんか?
Martijn Burger

7
それは理論的な問題です。たぶんconditional dependency良いでしょうか?命名は難しいです。このケースを簡潔に保ちながら、このケースの適切な名前を見つけるのは容易ではなかったと思います。
piotr.d 2017年

10
npm install --no-optional
suiwenfeng

5
私は完全に同意します、@ DemPilafian。したがって、元の応答を編集して「のみ」を削除しました。私は個人的に警告をエラーのように扱いますが、この場合、私見、これは警告としてログに記録されるべきではなく、むしろ情報です。Windows環境では警告をなくすために何もできないのです。
piotr.d

23
良い答えですが、どうすればそれを取り除くことができますか?
TetraDev

32

これはまだ問題であるように見え、「サポートされていないプラットフォーム」のためにオプションのパッケージがインストールされていないという警告が表示され、パッケージのインストールが中止されます。

この問題は、「シュリンクラップ」またはpackage-lock.jsonパッケージマネージャーを実行するたびに持続するシュリンクラップに関連しています。このファイルがの代わりに参照されるため、その後の試行は失敗し続けますpackage.json

これらのオプションをnpm installコマンドに追加すると、パッケージを再度インストールできるようになります。

   --no-optional argument will prevent optional dependencies from being installed.

   --no-shrinkwrap argument, which will ignore an available package lock or
                   shrinkwrap file and use the package.json instead.

   --no-package-lock argument will prevent npm from creating a package-lock.json file.

完全なコマンドは次のようになります。

    npm install --no-optional --no-shrinkwrap --no-package-lock

nJoy!


1
--no-optional警告を取り除くためだけに機能するコードに-flag を設定するのは危険ですか?デフォルトで設定されていないのはなぜですか?
cederlof

5
package-lock.jsonを使用することは良いことであり、このソリューションは反対を示唆するため、これはソリューションにはなりません。
ismailarilik

@ismailarilikこのソリューションでは、パッケージをインストールして作業を続けることができます。
nickl-

「--no-optional」は本当に悪いアイデアです。通常は警告を無視してかまいません。次も使用できますnpm install -fgithub.com/angular/angular/issues/13935
FoggyDay

12

パラメータ--forceの使用:

npm i -f

2
このコマンドで一度インストールを強制しましたが、起動するnpm installと警告は表示されません。
Allenile

1
そのコマンドの実行中にエラーが発生しましたが、npm installを再実行すると警告が表示されなくなりました!ありがとうサー
ccoutinho

それで、あなたはあなたのプロジェクトにそれらの役に立たない依存関係(Windowsマシンで)をインストールして警告を出していますか?もしそうなら、私は生産ビルでそれらを取り除く木を振ることを望みます。回避策が好きです。画面上のアップル関連のものを取り除きます。
Josep Alacid
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.