1. ホーム
  2. jquery

[解決済み] NugetをjQuery 1.9.x/1.xのパスで維持できますか(2.xにアップグレードする代わりに)?

2023-05-28 13:25:36

質問

多くの人と同じように、私は jQuery Nugetパッケージ を使って最新情報を入手しています。

しかし、jQuery 2.0 のリリースに伴い、jQuery 1.9.1 を 2.0 にアップグレードするように要求されました。現時点では、私のサイトには「古い」バージョンのブラウザーを使用している訪問者が十分にいるので、1.9.x に固執して jQuery マイグレート .

パッケージ(jQueryまたはその他)の更新をチェックするときに、特定のバージョン(1.9.x)に固執するようにNugetに指示する方法はありますか?

私は Visual Studio 2010/2012 の拡張機能を使用していますが、この問題を回避するために VS 内のコマンド ライン インターフェイスを使用する必要がある場合、私は確かにそうします。

注意してください。 ひとつだけ頭の片隅にあるのは、アップデートをしくじったということです。jQuery 1.9.x と 2.0.x/2.x はかなり異なるので、代わりに jQuery 2(.0.x|.x) パッケージを作成すべきだったようです。

もちろん、そうすれば実際に 2.x にアップデートしたい人はそれを知って、インストールしたいパッケージを切り替えなければなりません。しかし、それが破壊的な変更を含んでいることを考えると、その方が良いのかもしれません。

どのように解決するのですか?

私の意見では、これはパッケージ作者側のミスです。いくつかのブラウザーのサポートを削除する更新は、別のバージョン 2 の nuget パッケージに作成され、それに応じて、つまり重要な免責事項とともに宣伝されるべきでした。1.9 ライブラリはレガシーではなく、将来的にさらなるアップデートが行われる予定です。私はパッケージの作者と連絡を取っており、返信があればさらに詳しく書くつもりです。

暫定的に、以下の構文でパッケージのバージョンを制限することができます。 packages.config :

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />

バージョン制約の詳細については、こちらをご覧ください。

http://docs.nuget.org/docs/reference/Versioning

設定を変更した後、アップデートによって jQuery パッケージが 2.0 リリースにアップグレードされることはないはずです。過去に UI パッケージマネージャが allowedVersions 属性が尊重されないという問題がありました ( https://nuget.codeplex.com/workitem/1891 ) を使用するため、この問題が発生した場合は、コマンドラインを使用する必要があるかもしれません。

しかし、パッケージのフィードが 2.0+ トラックになるため、1.9 ブランチが更新されたときに何が起こるかという問題は解決されません。レガシー」1.x バージョンをサポートするために特別に書かれた新しい nuget パッケージに切り替えるか、毎回手動でスクリプトをコピーする必要があると推測されます。

いずれにせよ、もっと分かったらこれを更新します。

編集してください。

パッケージの作者は、1.x と 1.x の両方の 2.x パスの両方が将来サポートされること、つまり、パッケージフィードが分割されるのではなく、平行したバージョンを含むことを表明しています。私が見る限り、解決策はパッケージ設定レベルでバージョン制約を使用して 2.x バージョンへの更新を阻止することです。

<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />

(でminとmaxの両方を指定します。 allowedVersions で指定することで、2.x バージョンに切り替わるリスクを負うことなく更新できるはずです。ところで、右の括弧は奇妙に見えますが、正しいです - それは「バージョン 2 よりも小さい」という意味です)