NPM Check and Update pakket indien nodig

We moeten de runner Karma Test integreren in TeamCity en daarvoor zou ik SYS-ingenieurs klein script willen geven (PowerShell of alles) die:

  1. Pick-up gewenste versienummer van een configuratie-bestand (ik denk dat ik het als een opmerking kan plaatsen in de karma.conf.js)

  2. Controleer of de gedefinieerde versie van Karma Runner is geïnstalleerd in de Global Repo van NPM

  3. Als het niet is of de geïnstalleerde versie ouder is dan gewenst: ophalen en de juiste versie

  4. installeren

  5. Voer het uit: karma start .\Scripts-Tests\karma.conf.js --reporters teamcity --single-run

Dus mijn echte vraag is: “Hoe kan één script inchecken, indien gewenst van het pakket geïnstalleerd?”. Mocht u de cheque doen, of het is veilig om gewoon te bellen npm -g installEverytime?

Ik wil de nieuwste beschikbare versie niet altijd controleren en installeren, omdat andere configuratiewaarden incompatibel kunnen worden


1, Autoriteit 100%

Controleer of een module in een project ‘oud’ is:

npm outdated

verouderd ‘ controleert elke module gedefinieerd in package.jsonen kijk of er een nieuwere versie is in het register van NPM.

Zeg bijvoorbeeld xml2js 0.2.6(gevestigd in node_modulesin het huidige project) is verouderd omdat er een nieuwere versie bestaat (0.2.7). Je zou zien:

[email protected] node_modules/xml2js current=0.2.6

Naar update Alle afhankelijkheden, als u er zeker van bent, is dit wenselijk:

npm update

Of, om een ​​enkele afhankelijkheid bij te werken, zoals xml2js:

npm update xml2js

2, Autoriteit 53%

npm outdatedIdentificeer pakketten die moeten worden bijgewerkt en npm update <package name>kan worden gebruikt om elk pakket bij te werken. Maar voorafgaand aan [email protected], npm update <package name>werkt de versies in uw pakket niet bij.json die een probleem is.

De beste workflow is om:

  1. identificeren van de datumpakketten
  2. Werk de versies bij in uw pakket.json
  3. Voer het npm updateuit om de nieuwste versies van elk pakket
  4. te installeren

Bekijk npm-check-updatesom te helpen met deze workflow.

  • installeren npm-check-updates
  • Voer onder de naam npm-check-updatesom op te lijsten welke pakketten verouderd zijn (in principe hetzelfde als het uitvoeren van npm outdated)
  • Voer onder de naam npm-check-updates -uom alle versies in uw pakket bij te werken.json (dit is de magische saus)
  • Voer npm updatezoals gewoonlijk in om de nieuwe versies van uw pakketten op basis van het bijgewerkte pakket te installeren.json

3, Autoriteit 22%

Er is ook een “Fresh” -module genaamd npm-check:

NPM-controle

Controleer op verouderde, onjuiste en ongebruikte afhankelijkheden.

Het biedt ook een handige interactieve manier om de afhankelijkheden bij te werken met npm-check -u.


4, Autoriteit 14%

Eén eenvoudige stap:

$ npm i -g npm-check-updates && ncu -u && npm i

Dat is alles. Alle pakketversies in package.jsonzijn de nieuwste belangrijke versies.

EDIT:

Wat gebeurt hier?

  1. Een pakket installeren dat updates voor u controleert.

  2. Gebruik dit pakket om alle pakketversies bij te werken in uw package.json(-U is kort voor –UpDateall).

  3. Installeer alle nieuwe versies van de pakketten.


5, Autoriteit 10%

  • Om een ​​enkel lokaal pakket bij te werken:

    1. Zoek eerst uw verouderde pakketten:

      npm outdated

    2. Update vervolgens het pakket of pakketten dat u handmatig wilt als:

      npm update --save package_name

Op deze manier is het niet nodig om uw lokale package.jsonbij te werken
bestand.

Merk op dat dit uw pakket bijwerkt naar de nieuwste versie.

  • Als u een enkele versie in uw package.json-bestand en doet:

    npm update package_name

    In dit geval krijg je de volgende stabiele versie (Wanted) met betrekking tot de versie die je hebt geschreven in je package.json-bestand.

en met npm list (package_name)U kunt de huidige versie van uw lokale pakketten achterhalen.


6, Autoriteit 3%

Geen extra pakketten, om gewoon verouderd te controleren en die bijwerken die zijn, deze opdracht zal doen:

npm install $(npm outdated | cut -d' ' -f 1 | sed '1d' | xargs -I '$' echo '[email protected]' | xargs echo)


7, Autoriteit 2%

Controleer verouderde pakketten

npm outdated

Controleer en kies pakketten om

bij te werken

npx npm-check -u

npm oudeated img

npx npm-check -u img


8

Vanaf [email protected] + U kunt eenvoudig doen:

npm update <package name>

Hiermee wordt automatischhet bestand package.jsonbijgewerkt. We hoeven de nieuwste versie niet handmatig bij te werken en vervolgens npm update <package name>

te gebruiken

Je kunt nog steeds het oude gedrag krijgen met

npm update --no-save

(Referentie)


Antwoord 9

Bij het installeren van npm-pakketten (zowel globaal als lokaal) kunt u een specifieke versie definiëren door de syntaxis @versionte gebruiken om een versie te definiëren die moet worden geïnstalleerd.

Met andere woorden, doen:
npm install -g [email protected]
zorgt ervoor dat alleen 0.9.2 wordt geïnstalleerd en wordt niet opnieuw geïnstalleerd als het al bestaat.

Als een woord van advies zou ik willen voorstellen om waar mogelijk wereldwijde npm-installaties te vermijden. Veel mensen realiseren zich niet dat als een afhankelijkheid een bin-bestand definieert, het wordt geïnstalleerd in ./node_modules/.bin/. Vaak is het heel gemakkelijk om die lokale versie van een geïnstalleerde module te gebruiken die is gedefinieerd in uw package.json. In feite zullen npm-scripts de ./node_modules/.bin aan uw pad toevoegen.

Als voorbeeld is hier een package.json die, wanneer ik npm install && npm testzal de versie van karma installeren die is gedefinieerd in mijn package.json, en die versie van karma gebruiken (geïnstalleerd op node_modules/.bin/karma) bij het uitvoeren van het test-script:

{
 "name": "myApp",
 "main": "app.js",
 "scripts": {
   "test": "karma test/*",
 },
 "dependencies": {...},
 "devDependencies": {
   "karma": "0.9.2"
 }
}

Dit geeft u het voordeel dat uw package.json de versie van karma definieert die moet worden gebruikt en dat u die configuratie niet globaal op uw CI-box hoeft te bewaren.


Antwoord 10

Een andere benadering zou zijn om eerst het bestand package.json op te waarderen met,

ncu -u


en dan gewoon rennen,

npm install

om alle pakketten bij te werken naar de nieuwste versie.
ps: het zal alle pakketten bijwerken naar de nieuwste versie, maar als het pakket al up-to-date is, wordt dat pakket helemaal niet beïnvloed.


Antwoord 11

Als u slechts één pakket wilt bijwerken, installeert u NCU en voert u het vervolgens alleen voor dat pakket uit. Dit zal tegen de echte laatste aanlopen.

npm install -g npm-check-updates
ncu -f your-intended-package-name -u

Antwoord 12

3 eenvoudige stappen die u kunt gebruiken om alle verouderde pakketten bij te werken

Controleer eerst de pakketten die verouderd zijn

sudo npm i -g npm-check-updates

Ten tweede, zet ze allemaal klaar

ncu -u

De resultaten in Terminal zijn als volgt:

Ten derde, werk ze allemaal bij.

npm install

Dat is het.


Antwoord 13

Nog één voor bash:

npm outdated -parseable|cut -d: -f5|xargs -L1 npm i

Other episodes