Puedo mantener Nuget en jQuery 1.9.x / 1.ruta x (en lugar de actualizar a 2.x)?


Como la mayoría de la gente, estoy usando el paquete jQuery Nuget para mantenerme al día.

Sin embargo, con el lanzamiento de jQuery 2.0 ahora se me pide que actualice jQuery 1.9.1 a 2.0. En este momento tengo suficientes visitantes a través de mis sitios usando versiones 'antiguas' de navegadores que prefiero quedarme con 1.9.x and jQuery Migrate.

Está ahí de todos modos para decirle a Nuget que se apegue a una versión en particular (1.9.x) al buscar actualizaciones de un paquete (jQuery o de lo contrario)?

Estoy usando las extensiones de Visual Studio 2010/2012, pero si necesito usar la interfaz de línea de comandos dentro de VS para solucionar este problema, ciertamente lo haré.

Nota: Una cosa en el fondo de mi mente es que arruinaron la actualización. Desde jQuery 1.9.x y 2.0.x / 2.x son bastante diferentes, parece que deberían haber creado un jQuery 2(.0.x|.x) paquete en su lugar.

Por supuesto, entonces las personas que realmente quieren actualizar a 2.x tendrá que saberlo y cambiar el paquete que quieren instalado. Pero dado que contiene cambios radicales, ¿tal vez eso sea mejor?

Author: James Skemp, 2013-04-21

4 answers

En mi opinión, esto es un error por parte del autor del paquete. Una actualización que elimina el soporte para varios navegadores debería haberse hecho en un paquete nuget versión 2 separado y anunciado en consecuencia, es decir, con exenciones de responsabilidad significativas. La biblioteca 1.9 no es heredada y recibirá más actualizaciones en el futuro. He estado en contacto con el autor del paquete y escribiré más si recibo una respuesta.

Mientras tanto, puede restringir la versión de su paquete utilizando el siguiente sintaxis en su packages.config:

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

Hay más información sobre las restricciones de versión aquí:

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

Después de realizar el cambio de configuración, una actualización no debe actualizar su paquete jQuery a la versión 2.0. Ha habido problemas en el pasado con el administrador de paquetes de interfaz de usuario que no respeta el atributo allowedVersions ( https://nuget.codeplex.com/workitem/1891 ), por lo que es posible que tenga que usar la línea de comandos si encuentra este problema.

Sin embargo, nada de esto resuelve el problema de lo que sucede cuando se actualiza la rama 1.9 porque el feed del paquete ahora estará en la pista 2.0+. Asumo que tendrás que cambiar a un nuevo paquete nuget escrito específicamente para soportar el 'legacy' 1.x versión, o copiar el script manualmente cada vez.

En cualquier caso, actualizaré esto cuando aprenda más.

Editar:

El autor del paquete ha declarado que tanto el 1.x y 2.x rutas será soportado en el futuro, es decir, la fuente del paquete contendrá versiones paralelas en lugar de dividirlas. Por lo que puedo ver, la solución es usar una restricción de versión en el nivel de configuración del paquete para evitar una actualización a la 2.versión x, por ejemplo:

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

(Especificar las versiones min y max en allowedVersions debería permitir la actualización sin arriesgar un cambio a la 2.versión x. Por cierto, el paréntesis correcto parece extraño , pero es correcto: significa "menos que la versión 2".)

 117
Author: Dave R.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-30 18:31:27

¿Qué tal especificar la versión?

PM > Install-Package jQuery-Version 1.9.1

Referencias: http://nuget.org/packages/jQuery/1.9.1

 19
Author: TeYoU,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-22 08:41:21

Nuget ahora tiene un paquete jquery1 que solo rastrea el 1.x branch, por lo que debería poder intercambiar el paquete principal de jQuery por este.

 8
Author: Chris J,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-26 07:52:37

Combiné las dos soluciones desde arriba para @TeYoU

Primero instalé el paquete desde la consola del administrador de paquetes:

Menú Herramientas - > Gestor de Paquetes de la Biblioteca - > Consola del Gestor de Paquetes

PM> Install-Package jQuery -Version 1.9.1

Luego edité los paquetes.config como @ Dave R. dice:

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

Luego actualicé a la versión actual, actualmente 1.10.2 usando Nuget Manager y funcionó como un encanto.

 4
Author: jmacboy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-10 16:39:27