Wie kann ich alle meine Abhängigkeiten versionieren?

Lesezeit: 4 Minuten

tutucas Benutzer-Avatar
tutuca

Haben yarn outdated ist recht informativ, aber ich möchte vermeiden, Paket für Paket zu überarbeiten yarn upgrade.

Nur aus der Dokumentation von Yarn yarn upgrade Ohne Argumente sollen alle Abhängigkeiten aktualisiert werden, es gibt jedoch keine Änderung in meinen Projekten package.json Und yarn outdated zeigt die gleichen Paketversionen wie zuvor.

Gibt es einen Befehl oder ein Argument, das alle meine Abhängigkeiten aufhebt?

Wenn nicht, wird von dieser Praxis in irgendeiner Weise abgeraten?

Aktualisieren Sie alle Pakete auf die neueste Version

yarn upgrade --latest

Brazas Benutzeravatar
Braza

Sie können Ihre Pakete mit auf die neueste in package.json angegebene Version aktualisieren yarn upgrade ohne Argumente.

Dies ist dem entnommen Dokumente:

yarn upgrade

Dieser Befehl aktualisiert alle Abhängigkeiten auf ihre neueste Version basierend auf dem in der Datei package.json angegebenen Versionsbereich. Die Datei „garn.lock“ wird ebenfalls neu erstellt.

Dadurch werden nur Pakete aktualisiert, die in package.json aktualisiert werden dürfen, z. B. mit ^ (z.B ^0.13.0 würde auf Version aktualisieren 0.14.0 falls vorhanden). Dadurch wird Ihre package.json-Datei nicht aktualisiert, aber die Datei „garn.lock“ wird aktualisiert.

Wenn Sie Abhängigkeiten auf die neueste Version aktualisieren möchten, können Sie das Paket verwenden npm-check-updates Dadurch wird Ihre package.json aktualisiert:

$ yarn global add npm-check-updates
$ npm-check-updates -u
$ yarn upgrade

  • Rechts. Vielleicht tut es das. Aber es spiegelt sich nicht in meinem wider package.json Und yarn outdated zeigt keinen Unterschied vor und nach einem vollständigen Durchlauf yarn upgrade. Was vermisse ich?

    – tutuca

    19. Dezember 2016 um 11:56

  • Ich erkannte, dass yarn upgrade Aktualisiert Pakete nur dann auf die neueste Version in package.json, wenn Sie diese verwenden ^ oder ~. Wenn Ihr Paket als feste Version angegeben ist, ändert sich dies nicht. Ich habe meine Antwort bearbeitet, um eine Option zum Aktualisieren Ihrer package.json hinzuzufügen.

    – Braza

    19. Dezember 2016 um 15:34

  • Hast du es versucht yarn upgrade --latest Befehl? Laut Dokumentation wird, soweit ich es verstanden habe, auch die package.json aktualisiert.

    – Kosala Nuwan Perera

    24. August 2019 um 6:22 Uhr

Lauf einfach yarn upgrade-interactive --latest Wählen Sie mit der Leertaste die Pakete aus, die Sie aktualisieren möchten, und drücken Sie zum Aktualisieren die Eingabetaste.

  • HINWEIS: Sie müssen die importieren interactive-tools Plugin für yarn vor Gebrauch upgrade-interactiveindem Sie diesen Befehl ausführen: yarn plugin import interactive-tools.

    – Joshua Pinter

    6. Februar 2022 um 0:13

Benutzer-Avatar von Paul Razvan Berg
Paul Razvan Berg

Antwort für Benutzer von Yarn v2 und höher.

Importieren Sie die interactive-tools Plugin:

$ yarn plugin import interactive-tools

Und führen Sie es so aus:

$ yarn upgrade-interactive

Beachten Sie, dass dadurch auch die Nähte in Ihrem geändert werden package.json.

Wenn Ihre Abhängigkeiten eine Bereichsversion verwenden ("^x.x.x", "~x.x.x"usw.), Ihr package.json wird nicht aktualisiert, wenn die neueste Version ebenfalls diesem Bereich entspricht, sondern nur Ihre yarn.lock.

Wenn Sie Ihr wollen package.json aktualisiert werden:

  1. Ändern Sie alle Ihre Abhängigkeiten in eine feste Version ("x.x.x")
  2. Laufen yarn um die zu aktualisieren yarn.lock
  3. Laufen yarn upgrade-interactive und wählen Sie alle Abhängigkeiten aus, die Sie aktualisieren möchten

Jetzt beides yarn.lock Und package.json wird die genauen neuesten Versionen widerspiegeln.

Benutzeravatar von OCP30pt1c1l1l43-X1z17
OCP30pt1c1l1l43-X1z17

Sie können Ihre Abhängigkeiten auch auf einen Typoskript- oder Javascript-Spielplatz kopieren und verwenden Object.entries(obj).reduce((xs, x) => ${xs} ${x[0] }, "yarn add") um den Befehl zu generieren, der alle Pakete in Ihrem enthält package.json.

Beispiel

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)

Ausgang:

Garn hinzufügen @types/react @types/react-dom awesome-typescript-loader babel-polyfill del es-cookie es6-promise gulp gulp-autoprefixer gulp-clean-css gulp-concat gulp-if gulp-jshint gulp-merge-media -abfragen gulp-rename gulp-rev-all gulp-sass gulp-uglify jshint node-promise reagieren reagieren-dom require-dir run-sequence source-map-loader typescript webpack webpack-cli webpack-log

Ich verwende diesen Spielplatz, um den Befehl schnell zu generieren. Es ist auch nützlich, schnell Code aus JSON-Objekten zu generieren.

https://www.typescriptlang.org/play?ssl=35&ssc=19&pln=1&pc=1#code/DYUwLgBA9gRgVhAvBA3gKApiAiAAmATwAcQBnAegCcQBDAYzGwC4cA9ARgDYA6AZm-YAObABoMWPIRIVq9MAFoAJlAC2zNl24AGbp1HjM2G gHcyqkPKlk6lAJZEFwKDUUhK67KwCsA7fqw4MDQwIMDyRFDABABmtsDAHqw8AEw8Wv4Srgks2MnceckZhmTydFBQANa2IIns+X5iAdhknOGUqrakNTkALL7sRTgA5gCuwESJfTqFjRKj4-I0I2BQRNSxAB5 uifx1A7OG80SloDQAdqWkpDva+YPYR6VQZ3Q0jDmseTz7BsNjx7Zook8tN7o84KQABa2M7vNgg7g9MH-eQqNxDCxoxS2GjyACOIzc1WuOWmAmRC2oZxoaNq9RmvweKOoADdFvFEjoAJzcADsFOO pBoVxudXSBz+CxGQ2AgIIwNuPyaEOhsIVPKREuwZygrjaHS6nO4PnYDKasgYtR4fSVEgtCmUag+mht92oBNs1CUnqN-DNdpGFy6BJAL26ODqBXupCgI0odExNGOthc2w+ZN49yspBs9jhnjyPP9hlMMCI9Aqkw EIPupfLdAqJ1sNx0wi1dYr8icQzpNfEAF80OJQJBqKQkBAAPLwEAMbihsB2MgAClgcAAlNxqIoRgnl8uNqQRBANuukAA+CAAAwAJChD-2IHeNgBtLQAXQg-avx+ wBBolBnBALiKNg65DpgZRnDGoDcN2y5juuQA

1453460cookie-checkWie kann ich alle meine Abhängigkeiten versionieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy