Com actualitzar els paquets npm a la seva darrera versió

En qualsevol projecte NodeJS, voldreu actualitzar sovint les vostres dependències del paquet. Per sort, el procés és senzill i es pot fer en pocs minuts. Per descomptat, voleu verificar qualsevol actualització amb alguna QA i, possiblement, algunes proves automatitzades (un marc de prova o una eina de CI us pot ser útil).


Com actualitzar els vostres paquets

L’ordre d’actualització de npm us permet actualitzar qualsevol paquet actualitzat, segons les versions de package.json. Aquesta és la manera predeterminada d’actualitzar els paquets amb npm.

Com sé quins paquets tenen actualitzacions?

Una de les maneres integrades de comprovar quins paquets estan desfasats és executar la comanda obsoleta npm.

Una altra manera, que prefereixo, és utilitzar el mòdul npm-check-Updates (ncu). Aquest paquet us permet actualitzar fàcilment les vostres dependències de package.json a les darreres versions dels mòduls independentment de les restriccions de versió d’aquests fitxers. A continuació, amb les ordres d’instal·lació de npm o npm d’actualització, podeu actualitzar els paquets instal·lats.

A la resta d’aquest article, veurem les diverses eines de NodeJS per actualitzar paquets npm a la seva versió més recent, amb o sense restriccions de versió semàntica. Concretament, tractarem:

Vés endavant mitjançant els enllaços anteriors o continua la sessió per explorar el món de l’actualització de paquets npm!

Versió Semàntica: Major, Menor, & Gamma de la versió del pegat

Qualsevol paquet de npm o bower pot utilitzar la versió semàntica (semver) tal i com s’especifica al lloc web de semver.org. Això vol dir que una versió de paquet pot constar de tres components:

  1. MAJOR versió per a quan hi ha canvis d’API incompatibles
  2. MENOR versió per a quan s’afegeix la funcionalitat de manera compatible enrere
  3. PARCH la versió per a la restauració d’errors compatibles

Node-semver és el paquet que analitza els semvers i també entén alguna sintaxi addicional de semver, com ara: rangs bàsics, intervals de tall, etiquetes pre-llançades, intervals de cura, intervals guionats i x x.

Com a usuari dels paquets NodeJS, podeu especificar quins tipus d’actualitzacions pot acceptar l’aplicació al fitxer package.json. Per exemple, si esteu començant amb una versió de paquet 1.0.4, així podríeu especificar els intervals de versió d’actualització permesa de tres maneres bàsiques:

  • Permetre llançaments de pedaços: 1.0 o 1.0.x o ~ 1.0.4
  • Permetre llançaments menors: 1 o 1.x o ^ 1.0.4
  • Permetre llançaments principals: * o x

Hi ha més games de versions de gra fi que també s’utilitzen si utilitzeu la sintaxi de semver addicional esmentada anteriorment.

Primer, instal·leu node, npm, & ncu

Si encara no ho heu fet, consulteu aquest tutorial per instal·lar nodes i npm.

Ara podem instal·lar l’eina ncu a nivell mundial, escrivint el següent:

1 npm install -g npm-check-Updates

Pot ser que primer necessiteu permisos d’usuari root; en cas afirmatiu, escriviu “sudo” davant d’aquesta ordre:

1 Sudo npm install -g npm-check-Updates

Mirem la sintaxi d’ajuda de ncu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

$ ncu – help

 

Ús: ncu [opcions] [filtre]

[filter] és una llista o regex de noms de paquets a verificar (tots els altres seran ignorats).

 

Opcions:

-h, – ajuda la informació sobre l’ús de la sortida

-V, –versió sortida del número de versió

-d, –dev només comproveu les dependències dependents

-e, nivell de terror <n>        estableix el nivell d’error.

                                1: surt amb el codi d’error 0 si no es produeixen errors.

                                2: surt amb el codi d’error 0 si no calen paquets

                                actualització (útil per a la integració contínua). El valor per defecte és 1.

-g, –global comprova els paquets globals en lloc del projecte actual

-j, –jsonTot la sortida del nou fitxer de paquets en lloc del missatge llegible per humans

–Json Actualització de dependències actualitzades a json

-l, –loglevel <n>           quin nivell de registres cal informar: silenci, error, advertiment,

                                info, verbosa, ximpleria (predeterminat: advertir)

-m, – PackageManager <nom>  npm (predeterminat) o bower

-o, comprovació opcional només dependències opcionals

–packageData inclou un fitxer de paquets estrictes (utilitzeu Stdin en lloc)

–packageFile <nom de l’arxiu>     ubicació del fitxer de paquets (predeterminat: ./package.json)

-p, –prod comprovar només les dependències (no les dependències)

-r, – registre <url>         especifiqueu el registre de npm de tercers

-s, –silent no emet res (–loglevel silent)

-t, –greatest trobareu les versions més altes disponibles en comptes de

                                darreres versions estables

-u, –actualitza el fitxer de paquets sobreescrivint

-a, –upgradeAll inclouen fins i tot aquelles dependències l’última versió de les quals

                                satisfà la dependència de sempre declarada

Ara és un projecte Sample NodeJS

Creem un exemple de projecte de NodeJS anomenat “foo”, que deixarem en funció d’una versió de paquets “express” i “request” més antiga, per mostrar com actualitzar paquets mitjançant les ordres NodeJS d’instal·lació, actualització i ncu:

1
2
3
4
5

mkdir foo

cd foo

npm init

[respon a les preguntes de npm inicial]

npm install –save [email protected] [email protected]

Ara el nostre package.json semblarà així:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

{

  "nom": "foo",

  "versió": "1.0.0",

  "descripció": "foo",

  "principal": "index.js",

  "scripts": {

    "prova": "prova"

  },

  "paraules clau": [

    "foo"

  ],

  "autor": "cap",

  "llicència": "ISC",

  "dependències": {

    "expressa": "^ 3.1.2",

    "sol·licitud": "^ 1.9.9"

  }

}

Veiem com npm va instal·lar les versions anteriors d’aquests dos paquets a partir de la seva versió empaquetada més alta permesa i disponible i va actualitzar el fitxer package.json..

Comprovació de possibles actualitzacions

Per veure quins paquets tenen actualitzacions disponibles, podem utilitzar l’eina ncu o l’ordre npm desfasat.

Detecció d’actualitzacions amb npm

Si volíem comprovar si hi ha paquets que tinguin actualitzacions, podeu utilitzar l’ordre npm desfasat:

1
2
3
4

$ npm desactualitzat

Ubicació actual del paquet buscada la darrera ubicació

expressa 3.1.2 3.21.2 4.13.3 express

sol·licitud 1.9.9 1.9.9 2.67.0 sol·licitud

Veiem que la versió del paquet “sol·licitar” està en línia amb el que volíem (tal com va afirmar el nostre Semver durant la instal·lació), però que hi ha una nova versió principal disponible. Per al paquet “express”, veiem que tant les versions desitjades com les últimes tenen disponibles versions més recents.

Detecció de les actualitzacions amb ncu

Mitjançant l’eina ncu també podem detectar quins paquets tenen versions més recents:

1
2
3

$ ncu

expressa ^ 3.1.2  -&gt; ^ 4.13.3

sol·licitud ^ 1.9.9  -&gt; ^ 2,67,0

Veiem que hi ha actualitzacions importants per als dos paquets disponibles.

Actualitzacions actualitzades estrictes i no estrictes

Podem permetre actualitzacions estrictes de versió (estrictament dins de les nostres restriccions de sempre de pack.json) o actualitzacions no estrictes de versió (per actualitzar independentment de les restriccions de sempre).

Actualitzacions actualitzades estrictes amb npm

Utilitzem la comanda d’actualització npm per permetre actualitzacions estrictes amb versions:

1 $ npm actualització

Ara anem a veure una altra vegada a la nit passades de temps:

1
2
3
4

$ npm desactualitzat

Ubicació actual del paquet buscada la darrera ubicació

expressa 3.21.2 3.21.2 4.13.3 express

sol·licitud 1.9.9 1.9.9 2.67.0 sol·licitud

L’actualització de npm agradable, va fer el que vam demanar i no més!

Actualitzacions actualitzades no estrictes amb ncu

Per a actualitzacions no versionades no estrictes, hi ha diverses opcions de línia de comandes que podem utilitzar amb ncu.

ncu –grade [paquet]

Per actualitzar el paquet de “sol·licitud” a la versió més recent, podríem fer el següent:

1
2

$ ncu – sol·licitud actualitzada

sol·licitud ^ 1.9.9  -&gt; ^ 2,67,0

Aquesta opció actualitzarà el paquet pack.json per al paquet “request”:

1
2
3
4

  "dependències": {

    "expressa": "^ 3.1.2",

    "sol·licitud": "^ 2,67,0"

  }

Tingueu en compte que l’eina ncu manté les vostres polítiques de versió de semàntica existents (per exemple, “permetre només actualitzacions menors”, en el nostre cas) quan actualitzeu el fitxer package.json. Per tant, es va augmentar la versió principal del paquet “sol·licitud”, però la política de permetre només actualitzacions menors en una actualització de npm continua vigent..

Ara necessitem instal·lar la versió actualitzada del paquet mitjançant npm install:

1 instal·lació de npm

Comprovem la versió del paquet de “sol·licitud” instal·lada:

1
2
3

Llista de $ npm sol·licitud

[email protected] / home / usuari / foo

| — [email protected]

ncu –actualització

Per actualitzar totes les nostres dependències de paquets a package.json (inclòs el nostre paquet “express”), faríem el següent:

1
2

ncu – actualització

instal·lació de npm

ncu –upgradeAll

L’eina ncu pot instal·lar versions de paquets més recents d’acord amb les restriccions de sempre del paquet.json, però no actualitza les versions més noves del fitxer package.json..

Si voleu aplicar les versions de paquets instal·lats recentment al paquet.json, podeu fer servir l’opció –upgradeAll. Tot i que no és necessària, aquesta funcionalitat hi és si voleu.

Per imposar la sobreescriptura de les versions del paquet package.json a les darreres versions (permès per a sempre), número de versió específic, escriviu:

1
2

ncu – upgradeAll

instal·lació de npm

Filtratge amb ncu

També podríem actualitzar paquets que coincideixen amb alguna sintaxi d’expressió regular.

Per exemple, això coincidiria i actualitzaria tots els paquets a partir de “gulp-“:

1 ncu – actualització / ^ gulp- /

Per comprovar només els paquets “dependències”, i no també els paquets “devDependencies”, feu el següent:

1 $ ncu -p

Això pot ser útil en casos en què es desitgi més estabilitat de l’entorn dels desenvolupadors.

Utilitzant bower.json

Per utilitzar el fitxer bower.json amb ncu, especifiqueu aquesta opció a la línia d’ordres:

1 $ ncu -m bower

Actualització del paquet de npm final

NodeJS ofereix una excel·lent eina per a la gestió de paquets flexible i la versió de dependència. Assegureu-vos de fer una ullada a la documentació de npm per obtenir més informació sobre la gestió de paquets npm i sobre les bones pràctiques.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me