104 votes

npm : Pourquoi la version "0.1" est-elle invalide ?

J'ai dû changer la version de mon application npm de 0.1 à 0.0.1 pour que npm ne fasse pas cela.

$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: invalid version: 0.1
npm ERR!     at validVersion (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modul
es/read-package-json/read-json.js:571:40)
npm ERR!     at final (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read
-package-json/read-json.js:323:23)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:139:33
npm ERR!     at cb (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/slide/l
ib/async-map.js:48:11)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:301:48
npm ERR!     at fs.js:207:20
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.3.0
npm ERR! command "/usr/local/Cellar/node/0.10.5/bin/node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/lust/Documents/ply/dev-server
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/lust/Documents/ply/dev-server/npm-debug.log
npm ERR! not ok code 0

Pour être complet, voici le json de travail

$ cat package.json
{
    "name": "ply",
    "description": "ply server for local dev testing deployments",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
        "express": "3.x"
    }
} 

était "0.1" lorsqu'il a commis l'erreur.

S'agit-il d'une sorte de concept de version de compatibilité API/ABI nécessitant 3 séries de numéros de version ? Pourquoi le message d'erreur n'est-il pas plus convivial à cet égard ?

2 votes

Jeter un coup d'œil à la npm version commande. Elle permet d'incrémenter la version sémantique en fonction des niveaux majeurs, mineurs ou de correctifs. Exemples : npm version major , npm version minor , npm version patch

122voto

Brandon Tilley Points 49142

Oui, c'est nécessaire pour version sémantique qui est le schéma de versionnement utilisé par les paquets npm. Voici l'extrait de npm help json :

La version doit être analysable par node-semver qui est fourni avec npm en tant que dépendance. ( npm install semver pour l'utiliser vous-même).

Voici comment l'implémentation de semver par npm s'écarte de ce qui se trouve sur semver.org :

  • Les versions peuvent commencer par un "v"
  • Un élément numérique séparé de la version principale à trois chiffres par un trait d'union sera interprété comme un numéro de "construction" et augmentera la version. Mais si la balise n'est pas un nombre séparé par un trait d'union, elle est traitée comme une balise de préversion, et est inférieure à la version sans balise. Ainsi, 0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta

43 votes

Cool. L'erreur devrait juste dire quelque chose comme "npm requires semantic versioning".

0 votes

++ pour indiquer le traitement préférentiel des versions étiquetées (tagged-releases)

0 votes

@StevenLu Je pense qu'il faut également mentionner la version de semver utilisée, actuellement 2.0.0.

24voto

Réponse simple : utiliser 0.1.0

0.1 ne fonctionnera pas

Bon codage !

5voto

naomik Points 10423

La réponse courte est donc : "Vous devez utiliser le versioning sémantique".

Mais le raisonnement derrière cela est de fournir une version de paquetage raisonnable et uniforme à tous les utilisateurs de npm. Pour obtenir le numéro de version d'un paquet, vous avez certains niveau de confiance dans le fait que l'auteur comprend semver et l'utilise correctement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X