Seperti kebanyakan orang, saya menggunakan paket jQuery Nuget untuk tetap up to date.
Namun, dengan dirilisnya jQuery 2.0 saya sekarang diminta untuk mengupgrade jQuery 1.9.1 ke 2.0. Saat ini saya memiliki cukup banyak pengunjung di seluruh situs saya yang menggunakan versi 'kuno' dari browser yang saya lebih suka menggunakan 1.9.x dan jQuery Migrate .
Apakah ada cara untuk memberi tahu Nuget agar tetap menggunakan versi tertentu (1.9.x) saat memeriksa pembaruan sebuah paket (jQuery atau sebaliknya)?
Saya menggunakan ekstensi Visual Studio 2010/2012, tetapi jika saya perlu menggunakan antarmuka baris perintah dalam VS untuk mengatasi masalah ini, saya pasti akan melakukannya.
Catatan: Satu hal di benak saya adalah mereka mengacaukan pembaruan. Karena jQuery 1.9.x dan 2.0.x / 2.x cukup berbeda, tampaknya mereka seharusnya membuat paket jQuery 2 (.0.x | .x).
Tentu saja orang-orang yang benar-benar ingin memperbarui ke 2.x harus mengetahuinya dan mengganti paket mana yang ingin mereka instal. Tetapi mengingat itu berisi perubahan yang dapat merusak, mungkin itu lebih baik?
Jawaban:
Menurut pendapat saya, ini adalah kesalahan dari pihak pembuat paket. Pembaruan yang menghilangkan dukungan untuk beberapa browser seharusnya dibuat menjadi paket nuget versi 2 yang terpisah dan diiklankan sesuai dengan itu, yaitu dengan penyangkalan yang signifikan. Pustaka 1.9 bukan warisan dan akan menerima pembaruan lebih lanjut di masa mendatang. Saya telah menghubungi pembuat paket dan akan menulis lebih banyak jika saya menerima balasan.
Untuk sementara, Anda dapat membatasi versi paket Anda dengan menggunakan sintaks berikut di
packages.config
:<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" />
Ada lebih banyak informasi tentang batasan versi di sini:
http://docs.nuget.org/docs/reference/Versioning
Setelah melakukan perubahan konfigurasi, pembaruan seharusnya tidak memutakhirkan paket jQuery Anda ke rilis 2.0. Ada masalah di masa lalu dengan pengelola paket UI yang tidak menghormati
allowedVersions
atribut ( https://nuget.codeplex.com/workitem/1891 ), jadi Anda mungkin harus menggunakan baris perintah jika mengalami masalah ini.Namun, tidak satu pun dari ini menyelesaikan masalah tentang apa yang terjadi ketika cabang 1.9 diperbarui karena feed paket sekarang akan berada di jalur 2.0+. Saya berasumsi Anda harus beralih ke paket nuget baru yang secara khusus ditulis untuk mendukung versi 1.x 'legacy', atau menyalin skrip secara manual setiap saat.
Bagaimanapun, saya akan memperbarui ini ketika saya mempelajari lebih lanjut.
Edit:
Pembuat paket telah menyatakan bahwa jalur 1.x dan 2.x akan didukung di masa mendatang, yaitu feed paket akan berisi versi paralel dan bukan dipisah. Sejauh yang saya lihat, solusinya adalah dengan menggunakan batasan versi pada tingkat konfigurasi paket untuk mencegah pembaruan ke versi 2.x, misalnya:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
(Menentukan versi min dan max dalam
allowedVersions
harus memungkinkan pembaruan tanpa risiko peralihan ke versi 2.x. Ngomong-ngomong, tanda kurung kanan terlihat aneh, tetapi benar - artinya 'kurang dari versi 2'.)sumber
jquery1
paket di nuget, yang hanya melacak cabang 1.x.bagaimana menentukan versinya?
PM> Instal-Paket jQuery -Version 1.9.1
Referensi: http://nuget.org/packages/jQuery/1.9.1
sumber
Nuget sekarang memiliki paket jquery1 yang hanya melacak cabang 1.x, jadi Anda harus dapat menukar paket inti jQuery dengan yang ini.
sumber
Saya menggabungkan dua solusi dari atas untuk @TeYoU
Pertama saya menginstal paket dari konsol manajer paket:
Menu Alat -> Manajer Paket Perpustakaan -> Konsol Manajer Paket
PM> Install-Package jQuery -Version 1.9.1
Kemudian saya mengedit packages.config sebagai @Dave R. mengatakan:
<package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" />
Kemudian saya perbarui ke versi saat ini, saat ini 1.10.2 menggunakan Nuget Manager dan bekerja dengan sangat baik.
sumber