web-dev-qa-db-fra.com

Que font les drapeaux --save avec npm install

Je vois les instructions pour installer un paquet avec soit

npm install <package_name>

ou

npm install <package_name> --save

ou

npm install <package_name> --save-dev

Quelle est la différence entre ces options?

55
Obromios

npm install <package_name> --save installe le package et met à jour les dépendances dans votre package.json. Depuis que cette question a été posée, il y a eu un changement en npm, tel que --save est devenu l'option par défaut, vous n'avez donc pas besoin d'utiliser --save pour mettre à jour les dépendances.

npm install <package_name> --no_save installe le package mais ne met pas à jour les dépendances répertoriées dans votre package.json.

npm install <package_name> ---save-dev met à jour le devDependencies de votre paquet. Celles-ci ne sont utilisées que pour les tests et le développement locaux.

Vous pouvez en lire plus à https://docs.npmjs.com/getting-started/using-a-package.json .

31
Obromios

npm install prend 3 indicateurs exclusifs facultatifs qui enregistrent ou mettent à jour la version du paquet dans votre paquet principal.json:

-S, --save: Le paquet apparaîtra dans vos dépendances.

-D, --save-dev: Le paquet apparaîtra dans vos devDependencies.

-O, --save-optional: Le paquet apparaîtra dans vos dépendances optionnelles.

Lorsque vous utilisez l'une des options ci-dessus pour enregistrer des dépendances dans votre package.json, un indicateur supplémentaire, facultatif, est ajouté:

-E, --save-exact: les dépendances enregistrées seront configurées avec une version exacte plutôt que d'utiliser l'opérateur semver par défaut de npm. De plus, si vous avez un fichier npm-shrinkwrap.json, il sera également mis à jour.

<scope> est facultatif. Le package sera téléchargé à partir du registre associé à l'étendue spécifiée. Si aucun registre n'est associé à l'étendue donnée, le registre par défaut est utilisé. Voir npm-scope.

Remarque: si vous n'incluez pas le symbole @ dans votre nom d'étendue, npm l'interprétera comme un référentiel GitHub, voir ci-dessous. Les noms d'étendues doivent également être suivis d'une barre oblique.

Exemples:

npm installer sax --save npm installer githubname/reponame npm installer @ myorg/privatepackage npm installer-tap-tap --save-dev npm installer dtrace-fournisseur --save-optional npm installer readable-stream --save --save-exact

Remarque: S'il existe un fichier ou un dossier nommé <name> dans le répertoire de travail actuel, il essaiera de l'installer et n'essaiera d'extraire le paquet que par son nom s'il n'est pas valide.

(de la documentation officielle) https://docs.npmjs.com/cli/install

41
Orange WebDev

Le --save Le drapeau ne sert plus à rien.

Auparavant, comme indiqué dans les autres réponses, le --save_ flag mettrait à jour les dépendances dans le projet package.json fichier, mais npm install inclut maintenant cette fonctionnalité par défaut.

À ce stade, si vous voulez empêcher npm install de sauver les dépendances, vous devez utiliser le --no-save drapeau.

Merci à Coruscate5 d’avoir mentionné cela dans leur commentaire .

Plus d'informations dans le documentation de npm-install :

npm install enregistre les packages spécifiés dans les dépendances par défaut. En outre, vous pouvez contrôler où et comment ils sont enregistrés avec des indicateurs supplémentaires:

-P, --save-prod: Le paquet apparaîtra dans vos dépendances. C'est la valeur par défaut sauf si -D ou -O sont présents.

-D, --save-dev: Le paquet apparaîtra dans vos devDependencies.

-O, --save-optional: Le paquet apparaîtra dans vos dépendances optionnelles.

--no-save: Empêche l'enregistrement dans les dépendances.

Lorsque vous utilisez l'une des options ci-dessus pour enregistrer des dépendances dans votre package.json, il existe deux indicateurs supplémentaires facultatifs:

-E, --save-exact: les dépendances enregistrées seront configurées avec une version exacte au lieu d’utiliser l’opérateur par défaut de npm.

-B, --save-bundle: les dépendances enregistrées seront également ajoutées à votre liste bundleDependencies.

15
2xj