Cómo actualizar manualmente un paquete de tipografías obsoletas


Tengo una aplicación NodeJS que estoy escribiendo en TypeScript. Utiliza muchos paquetes de nodos. No todos estos paquetes tienen definiciones de Typescript, así que uso Typings para obtener los archivos de definición separados.

Cuando despliego mi aplicación al servidor de producción, tengo un gancho Git que se ejecuta npm install, typings install, y tsc, ya que estos no están incluidos en el repositorio Git.

Cuando se libera una nueva versión de un archivo de definición de Typings en DefinitelyTyped, recibo advertencias cuando se ejecuta typings install que mis archivos de definiciones están obsoletos (actualizados, reemplazados o eliminados):

typings WARN deprecated 6/30/2016: "registry:dt/bluebird#2.0.0+20160319051630" is deprecated (updated, replaced or removed)
typings WARN deprecated 7/5/2016: "registry:dt/knex#0.0.0+20160622193910" is deprecated (updated, replaced or removed)
typings WARN deprecated 7/20/2016: "registry:dt/node#6.0.0+20160613154055" is deprecated (updated, replaced or removed)
typings WARN deprecated 7/19/2016: "registry:dt/lodash#3.10.0+20160619033623" is deprecated (updated, replaced or removed)

¿Qué se puede hacer al respecto? ¿Hay una manera fácil de actualizarlos todos? Se parece a las tipografías.el archivo json especifica un número de versión para el paquete después del signo # y una fecha después del signo+. Si un nuevo archivo de definiciones se sube a DefinitelyTyped, ¿no es generalmente seguro asumir que es más preciso o más completo que la versión anterior?

¿Hay alguna forma sancionada de actualice estos manualmente, aparte de typings uninstall --save seguido de typings install --save para cada paquete? Parece una molestia, y debería haber alguna manera fácil, algo como typings update [package-name].

Author: Travesty3, 2016-07-22

1 answers

Fácil en TypeScript 2.0

También debe mencionarse que TypeScript 2.0, lanzado oficialmente en septiembre de 2016, tiene una solución más fácil integrada en npm (en colaboración con el autor de Typings y los autores de TSD). Donde esencialmente obtienes los paquetes Definitivamente escritos como @types/packageName:

npm install --save packageName @types/packageName

Mientras que también es capaz de obtener automáticamente tipos de paquetes npm directamente. Esto le permite simplemente usar package.json y npm para administrar directamente sus definiciones de tipos. En cuyo caso

npm update

Obtendrá exactamente el comportamiento que solicitó originalmente.

Consulte la publicación del blog del anuncio de la beta y la documentación oficial de Typescript para obtener más información.


Romper los cambios de @types no activa advertencias

Sin embargo, querría tener en cuenta que un miembro del equipo de Typescript (Ryan Cavanaugh) mencionó en la sección de comentarios del anuncio Beta de de TypeScript que al menos el actual la versión Beta a la que se refería no advirtió sobre definiciones de Tipos desactualizadas. Incluso para semver actualizaciones importantes. Lo que significa que si desea definiciones de tipo para lodash versión 4 y en su lugar obtuvo para lodash versión 3, no habría ninguna advertencia. Obteniendo así la definición de tipo para una biblioteca que ha pasado por cambios importantes. Solo algo que potencialmente tener en mente (EDITAR: Personalmente aún no han confirmado si este es el caso para la versión final 2.0.).

No hay actualización command

No hay ningún comando de actualización, hay un problema en los tipos al respecto, que contiene scripts unix y powershell para hacer automáticamente algún tipo de actualización también.

Comando de instalación específico

Como puede ver en las opciones de CLI, sin embargo, puede actualizar la definición de tipo para un paquete específico con un origen específico y un rango semver.

Si el código fuente está Definitivamente escrito, debería prefijar el paquete con dt~. Mientras que si usted tiene el semver version ^3.10.0, usted añadiría el sufijo @^3.10.0 al nombre del paquete.

Dependiendo de si es una dependencia regular o de desarrollo, también agregaría --save o --save-dev respectivamente. Mientras que también agregaría --global si se trata de una dependencia global. Esto debe ser legible en el archivo typings.json

Para actualizar el paquete lodash que mencionaste anteriormente a la última definición de tipo con la versión semver ^3.10.0 escribirías:

typings install dt~lodash@^3.10.0 --save

O

typings install dt~lodash@^3.10.0 --save --global

Si es una dependencia global.

Esto actualizará el hash y la fecha de las tipografías.json e instale la última definición para el rango semver dado. Mientras que si no se encuentra ninguna actualización, no hay ningún cambio en el archivo. Si está configurado para automatizar este proceso de actualización, podría escribir un script que intente realizar estas actualizaciones independientemente.

Advertencias

Tenga en cuenta que las definiciones de tipo Definitivamente escritas no siempre están etiquetadas correctamente con versiones. Potencialmente completamente carente de versiones etiquetadas o que tienen grandes espacios entre ellos. Por ejemplo, también podría ser que una versión sin etiquetar es más reciente que la última versión etiquetada, este es actualmente el caso de lodash en Definitely Typed (25 de junio de 2016).

Puede descubrir fácilmente qué versiones etiquetadas existen para un paquete dado en una fuente dada con:

typings view <source>~<package> --versions

Para el paquete lodash Definitivamente Escrito como fuente sería:

typings view dt~lodash --versions

Para ver versiones sin etiquetar que podríaestar más actualizado Creo que tienes que inspeccionar el directorio correspondiente en el repositorio Definitivamente escrito, donde podría ser mencionado en la última confirmación o indicado en la parte superior del archivo.

 27
Author: Koslun,
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
2016-12-05 17:59:40