Certes, le traitement précédent a utilisé le processus intégré.agrv, qui peut fonctionner, mais il n'est pas facile de travailler, donc le maître TJ a écrit un "My God", qui est complètement haut de gamme:
1. Installation
La copie de code est la suivante:
commandant d'installation de NPM
2. Analyse des options
Les options avec le commandant sont définies avec la méthode .option (), servant également de documentation pour les options. L'exemple ci-dessous Parses Args et Options de Process.argv, laissant les args restants comme tableau Program.args qui n'étaient pas consommés par les options.
La copie de code est la suivante:
#! / USR / bin / env
/ **
* Dépendances du module.
* /
var programme = require («commandant»);
Programme
.Version ('0.0.1')
.option ('- p, --peppers', 'Ajouter des poivrons')
.option ('- P, --Pineapple', 'Ajouter l'ananas')
.option ('- b, --bbq', 'ajouter de la sauce barbecue')
.option ('- c, --cheese [type]', 'Ajouter le type de fromage spécifié [en marbre]', 'marbre')
.Parse (process.argv);
Console.log ('Vous avez commandé une pizza avec:');
if (programme.peppers) console.log ('- peppers');
if (programme.pineapple) console.log ('- anneapple');
if (programme.bbq) console.log ('- bbq');
Console.log ('-% S Cheese', Program.Cheese);
Les drapeaux courts peuvent être passés en tant que Arg unique, par exemple -ABC équivaut à -a -b -c. Les options multi-mots telles que le «modèle de moteur» sont basées sur des chameaux, devenant program.emplateEngine, etc.
3. Générer automatiquement les informations d'aide
La copie de code est la suivante:
$ ./Examples/pizza - help
Utilisation: Pizza [Options]
Options:
-V, - Version Sortie Le numéro de version
-p, --PEPPERS Ajouter des poivrons
-P, --pineapple Ajouter l'ananas
-B, --BBQ Ajouter une sauce barbecue
-C, --Cheese <pype> Ajoutez le type de fromage spécifié [marbre]
-H, - Help Informations d'utilisation de sortie
Bien sûr, vous pouvez également générer manuellement:
La copie de code est la suivante:
#! / USR / bin / env
/ **
* Dépendances du module.
* /
var programme = require ('../');
Liste des fonctions (Val) {
return val.split (','). map (numéro);
}
Programme
.Version ('0.0.1')
.option ('- f, --foo', 'activer un foo')
.option ('- b, --bar', 'activer un bar')
.option ('- b, --baz', 'activer un baz');
// doit être avant .parse () puisque
// Emit () du nœud est immédiat
programme.on ('- help', function () {
console.log ('Exemples:');
console.log ('');
console.log ('$ personnalisé-help - help');
console.log ('$ personnalisé-help -h');
console.log ('');
});
programme.parse (process.argv);
console.log («trucs»);
4. Donnez un exemple complet
La copie de code est la suivante:
Plage de fonction (Val) {
return val.split ('..'). map (numéro);
}
Liste des fonctions (Val) {
return val.split (',');
}
fonction collection (val, mémo) {
memo.push (val);
RETOUR MÉMO;
}
fonction AugmentationVerbosité (v, total) {
Retour total + 1;
}
Programme
.Version ('0.0.1')
.usage ('[options] <fichier ...>')
.option ('- i, --Integer <n>', 'un argument entier', Parseint)
.option ('- f, --float <n>', 'a float argument', parsefloat)
.option ('- r, - plage <a> .. <b>', 'une gamme', gamme)
.option ('- l, - list <émiers>', 'une liste', liste)
.option ('- o, - optional [valeur]', 'une valeur facultative')
.option ('- C, - COLERCT [Value]', 'une valeur reproductible', collectionne, [])
.option ('- v, --verbose', «une valeur qui peut être augmentée», augmentation, 0)
.Parse (process.argv);
console.log ('int:% j', programme.integer);
console.log ('float:% j', programme.float);
Console.log ('Facultatif:% J', programme.optional);
Program.Range = Program.Range || [];
console.log ('plage:% j ..% j', programme.late [0], programme.range [1]);
Console.log ('List:% J', programme.List);
Console.log ('Collect:% J', programme.collect);
Console.log ('Verbosité:% J', programme.verbose);
Console.log ('Args:% J', programme.args);