tutuca
Teniendo yarn outdated
es bastante informativo, pero me gustaría evitar ejecutar paquete por paquete haciendo yarn upgrade
.
De la documentación de yarn, solo yarn upgrade
sin argumentos se dice que actualiza todas las dependencias pero no hay cambios en mi proyecto package.json
y yarn outdated
muestra las mismas versiones de paquetes que antes.
¿Hay algún comando o argumento que supere todas mis dependencias?
Si no, ¿se desalienta la práctica de alguna manera?
Actualizar todos los paquetes a la última versión
yarn upgrade --latest
braza
Puede actualizar sus paquetes a la última versión especificada en el paquete.json usando yarn upgrade
sin ningún argumento.
Esto está tomado de la documentos:
yarn upgrade
Este comando actualiza todas las dependencias a su última versión según el rango de versiones especificado en el archivo package.json. El archivo yarn.lock también se volverá a crear.
Esto solo actualizará los paquetes que se pueden actualizar en el paquete.json, por ejemplo, usando ^
(p.ej ^0.13.0
actualizaría a la versión 0.14.0
si existiera). Esto no actualizará su archivo package.json, pero actualizará yarn.lock.
Si desea actualizar las dependencias a la última versión, puede usar el paquete npm-check-updates
que actualizará su paquete.json:
$ yarn global add npm-check-updates
$ npm-check-updates -u
$ yarn upgrade
-
Bien. Tal vez sí. Pero no se refleja en mi
package.json
yyarn outdated
no muestra ninguna diferencia antes y después de una serie completa deyarn upgrade
. ¿Qué me estoy perdiendo?– tutuca
19 de diciembre de 2016 a las 11:56
-
Me dí cuenta que
yarn upgrade
solo actualiza los paquetes a la última versión en el paquete.json si está utilizando^
o~
. Si su paquete se especifica como una versión fija, esto no cambiará. Edité mi respuesta para agregar una opción para actualizar su paquete.json.– braza
19 dic 2016 a las 15:34
-
Has probado
yarn upgrade --latest
¿dominio? De acuerdo con la documentación, según entendí, también actualiza el paquete.json.– Kosala Nuwan Perera
24 de agosto de 2019 a las 6:22
solo corre yarn upgrade-interactive --latest
y seleccione los paquetes que desea actualizar usando el botón de espacio y presione Intro para actualizar.
-
NOTA: Deberá importar el
interactive-tools
complemento parayarn
antes de usarupgrade-interactive
ejecutando este comando:yarn plugin import interactive-tools
.– Josué Pinter
6 de febrero de 2022 a las 0:13
Pablo Razvan Berg
Respuesta para usuarios de Yarn v2 y superior.
Importar el interactive-tools
enchufar:
$ yarn plugin import interactive-tools
Y ejecútalo así:
$ yarn upgrade-interactive
Tenga en cuenta que esto también modificará los servidores en su package.json
.
Si sus dependencias están usando una versión de rango ("^x.x.x"
, "~x.x.x"
etc.), su package.json
no se actualizará si la última versión también coincide con ese rango, solo su yarn.lock
.
si quieres tu package.json
Para actualizarse:
- Cambie todas sus dependencias a una versión fija (
"x.x.x"
) - Correr
yarn
para actualizar elyarn.lock
- Correr
yarn upgrade-interactive
y seleccione todas las dependencias que desea actualizar
Ahora tanto su yarn.lock
y package.json
reflejará las últimas versiones exactas.
OCP30pt1c1l1l43-X1z17
También puede copiar sus dependencias en un patio de juegos mecanografiado o javascript y usar Object.entries(obj).reduce((xs, x) =>
${x} ${x[0] }, "yarn add")
para generar el comando que contiene todos los paquetes dentro de su package.json
.
Ejemplo
let obj = {
"@types/react": "^16.3.18",
"@types/react-dom": "^16.0.6",
"awesome-typescript-loader": "^5.1.0",
"babel-polyfill": "^6.26.0",
"del": "2.2.2",
"es-cookie": "^1.2.0",
"es6-promise": "4.1.1",
"gulp": "^4.0.2",
"gulp-autoprefixer": "^3.1.1",
"gulp-clean-css": "^3.0.2",
"gulp-concat": "^2.6.1",
"gulp-if": "^2.0.2",
"gulp-jshint": "^2.0.4",
"gulp-merge-media-queries": "0.2.1",
"gulp-rename": "^1.2.2",
"gulp-rev-all": "^0.9.7",
"gulp-sass": "^3.1.0",
"gulp-uglify": "^2.0.1",
"jshint": "^2.9.4",
"node-promise": "^0.5.12",
"react": "^16.4.1",
"react-dom": "^16.4.1",
"require-dir": "^0.3.2",
"run-sequence": "1.2.2",
"source-map-loader": "^0.2.3",
"typescript": "^2.9.2",
"webpack": "^4.12.0",
"webpack-cli": "^3.0.8",
"webpack-log": "^1.2.0"
}
let res = Object.entries(obj).reduce((xs, x) => `${xs} ${x[0] }`, "yarn add")
console.log(res)
Producción:
hilo añadir @types/react @types/react-dom impresionante-mecanografiado-cargador babel-polyfill del es-cookie es6-promise trago trago-autoprefijo trago-limpio-css trago-concat trago-si trago-jshint trago-merge-media -consultas gulp-rename gulp-rev-all gulp-sass gulp-uglify jshint nodo-promise reaccionar reaccionar-dom require-dir run-sequence source-map-loader typescript webpack webpack-cli webpack-log
Uso este patio de recreo para generar rápidamente el comando. También es útil para generar código rápidamente a partir de objetos json.