2017-12-14 21 views
1

カスタムビルドのバージョン管理のフォーマットに応じて、角型アプリケーションのpackage.jsonを変更する必要があります。バージョンでsemverを実行することは義務的であり、カスタムバージョンのフォーマットを使用すると角度アプリにエラーが発生する可能性があります。package.jsonのバージョンは常にsemverに従うべきですか?

+0

「npm install」はカスタムバージョンのフォーマットでうまく動作します。 – mlsngh

答えて

1

これは必須ではありませんが、より新しい互換性のあるコードを提供しています。

メジャーバージョン番号を変更しない限り、エラーは発生しません。

カスタマーバージョンのフォーマットを使用して説明したように、問題なく動作します。

すべてのモジュールがセマンティックバージョン管理に続くわけではありません。モジュールは、3つの部分からなるバージョン番号 を使用しますが、好きなだけ増分します。最も安全な 方法はモジュールのドキュメント

をチェックすることですが、キャッチ

は、あなたがあなたの依存関係としてチルダ(〜)でライブラリのバージョン1.3.4を使用していると言うがしてみましょう。図書館は整備されており、迅速に進歩しています。今日の最新バージョンは実際1.5.1です。その後、すべてのバージョンに影響を及ぼすミッションクリティカルなバグが発見されます。バグは適切な扱いを受け、すぐにバージョン1.5.2で修正されます。今ではあなたのバージョンに合わせてバグ修正パッチリリース1.3.5がリリースされず、バグ修正が得られなくなる可能性があります。

+0

優れた記事https://bytearcher.com/articles/semver-explained-why-theres-a-caret-in-my-package-json/ –

+0

物を再現できるようにするには、バージョン番号の範囲を正確なバージョンに置き換える必要があります。 これを拡張するには:あなたのpackage.jsonに正確なバージョンを指定しても、依存関係そのものが通常より緩い仕様であるため、再現可能なビルドを意味しません。キャレット。この場合、新しくインストールされたものはあなたの依存関係の依存として新しいバージョンを拾います。 –

+0

引用したnpm-shrinkwrapは、依存関係ツリーを再帰的に処理し、トップレベルのnpm-shrinkwrap.jsonのJSONツリーで正確なバージョンを指定することで解決します。つまり、node_modulesディレクトリのpackage.jsonファイルは変更しません。これは、新しいコードが同じパッチのバージョン番号の下に到着する可能性があるため、100%再現性を保証するものではありません。 https://www.npmjs.com/packa ...のようなツールは、より良い保証を提供するために存在するか、または依存関係のための社内ソース管理を持つことができます。 –

関連する問題