Maison >interface Web >js tutoriel >Comment puis-je transmettre des arguments de ligne de commande dynamique aux scripts npm ?

Comment puis-je transmettre des arguments de ligne de commande dynamique aux scripts npm ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-04 02:52:09540parcourir

How Can I Pass Dynamic Command Line Arguments to npm Scripts?

Réalisation d'arguments de ligne de commande dynamiques avec des scripts npm

Dans le domaine du développement, il est souvent souhaitable de transmettre des arguments aux scripts exécutés via des commandes npm. Cet article explore les possibilités d'y parvenir avec les scripts npm. Nous nous concentrerons sur les versions plus récentes de npm (2 et supérieures) et leur prise en charge robuste pour la transmission d'arguments aux scripts.

npm 2 et plus récents

Avec npm 2 et les versions ultérieures, la syntaxe de passer des arguments aux commandes npm run est la suivante :

npm run <command> [-- <args>]

Le séparateur '--' est crucial, car il divise les paramètres destinés à npm parmi ceux destinés à votre script. Voici une illustration :

npm run grunt -- task:target  // Invokes `grunt task:target`
npm run server -- --port=1337 // Invokes `node server.js --port=1337`

Notez que si votre argument ne commence pas par '-' ou '--', le séparateur explicite '--' est facultatif mais reste recommandé pour plus de clarté.

npm run grunt task:target     // Also invokes `grunt task:target`

Mais soyez prudent avec les arguments commençant par '-' ou '--', car npm les interprétera comme ses propres options plutôt que de les transmettre au script.

['C:\Program Files\nodejs\node.exe', 'C:\git\myrepo\test.js', 'foobar']  // Argument passed to script

['C:\Program Files\nodejs\node.exe', 'C:\git\myrepo\test.js']  // Argument not passed to script

Pour récupérer la valeur du paramètre dans votre script, process.argv peut être utilisé. Pour une gestion plus complexe, les bibliothèques comme yargs ou minimist sont idéales pour analyser les paramètres nommés et gérer les arguments de ligne de commande séparés par des espaces exposés par process.argv.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn