2017-07-01 1 views
3

私は一般的に、私は、しかしyarn.lockクロスプラットフォームを維持していますか?

など、私はそれらを介して見ることができますので、一箇所での私のノードモジュールのすべてを収集し、私のIDEで完成を得るために、私の地元のdevのマシン(OSX)のnpm installのコマンドを実行します私は糸を使用するのが初めてです。パッケージのいくつかのバージョンが私の開発環境に固有のものにロックされているようですので、package.jsonをアルパインドッカーコンテナに落とすと、

warning [email protected]: The platform "linux" is incompatible with this module.

私が推測しているのは、パッケージが特定のバージョンまたは依存関係のセットにロックされていることを意味します。 OSX特有のものです。

これはまだ機能が壊れているようには見えませんが、私はそれが問題になる可能性があると懸念しています。どのようにクロスプラットフォーム開発のための糸を維持するためのアイデア?それとも、私がここで完全に良性であると見ているのでしょうか?

答えて

2

そうでもない答えが、...

あなたの例では、糸、yarn.lockまたはnpmとそのことについてpackage-lock.jsonに特有の問題ではありません。 fseventsパッケージは、特にMacOSファイルシステムイベント用です。したがって、他のプラットフォーム(Linuxなど)では動作しません。

このパッケージを直接使用している場合は、クロスプラットフォームの代替品を検討してください。

プロジェクトに依存しているためにこの警告が表示される場合、その警告(およびその依存関係)もクロスプラットフォームであることを確認することをお勧めします。

多くのプラットフォーム固有のパッケージは、互換性がないか、そのプラットフォームに存在しない機能を補うために存在します。あなた(またはあなたの依存関係)がこれをプラットフォーム単位で正しく処理している限り、あなたはうまくいくはずです。これらのパッケージは、package.jsonにオプションとしてリストされています。これは、それらが設計されていないプラットフォームでは失敗することが予想されるためです(したがって、警告)。

これは、必ずしもすべての マシン上で動作しません依存関係のために有用であり、あなたがフォールバック計画を持っています。この方法の詳細については

は、糸は、オプションの依存関係を含ん依存型の良い説明がありますそれらがインストールされていない場合は...

https://yarnpkg.com/lang/en/docs/dependency-types/

関連する問題