Cómo desarrollar aplicaciones interactivas de línea de comandos usando Node.js
Trabajar duro para crear su propia herramienta de línea de comandos a menudo puede reducir en gran medida la duplicación del trabajo y mejorar la eficiencia del desarrollo. Permítanme presentarles brevemente los pasos para desarrollar una herramienta de línea de comandos.
Tome como ejemplo el andamiaje rápido de proyectos front-end:
Pasos principales de desarrollo:
1. Crear un proyecto.
$ npm init
nombre: (app-cli)
versión: (1.0.0)
descripción: herramienta de línea de comandos para crear proyectos personalizados
Entrada: (index.js)
Autor:
Autorización: (MIT)
Se generará un archivo package.json.
Agregue el campo bin en el archivo
La clave del campo bin es su comando y el valor apunta a la ruta relativa de package.json
<. p> Diferentes teclas corresponden a diferentes comandos. Para obtener más información sobre el campo bin, consulte la sección package.json de la documentación de npm.{ ?" name": "app-cli", ?" version": "1.0.0", ?" descripción": "Herramienta de línea de comandos para crear proyectos personalizados", ?" bin": { "createApp":"/bin/index.js"
}, ?" main":"index.js", ?" autor":"", ?" licencia":" MIT"}
2. Crear archivo bin/index.js
#! /usr/bin/env node console.log('¡Hola, mundo!');
Tenga en cuenta que debe agregar un shebang para especificar el entorno en el que se ejecuta el script
3 Prueba
Para facilitar la depuración durante el proceso de desarrollo, puede ejecutar comandos en el ámbito global, y debe reflejar el módulo de desarrollo en el ámbito global y ejecutar el comando en el directorio de desarrollo:
enlace npm
{userpath}\AppData\Roaming\npm\createapp -> {userpath}\AppData\Roaming\npm\node_modules\app-cli\bin index.js
{ruta de usuario} \AppData\Roaming\npm\node_modules\app-cli -> {ruta de usuario}\myproject/app-cli
$createapp
Hola, ¡mundo! ¡mundo!
Esto facilita la depuración del código.
Introducción a módulos comunes de herramientas de línea de comandos:
Marco de interacción de línea de comandos Commander.js
Uso: #! /usr/bin/env node/**
* Dependencias del módulo.
*/var program = require('commander');
program .version('0.0.1') . pimientos') .option('-P, --pineapple', 'Agregar piña') .option('-b, -bbq-sauce', 'Agregar salsa bbq') . type]', 'Agrega el tipo especificado de queso [mármol]', 'mármol') .parse(process.argv);console.log('pediste una pizza con:');if (program.peppers) console. log('? - pimientos');if (program.piña) console.log('? - piña');if (program.bbqSauce) console.log('? - barbacoa');console.log('? - %s cheese', program.cheese);
2.yargs Otro marco interactivo de línea de comandos#! /usr/bin/env nodo ?require('yargs')
.usage('$0
.command('hola [nombre]' , '¡bienvenido ter yargs!', { nombre: { predeterminado: 'nombre predeterminado'
?}
}, { nombre: { predeterminado: 'nombre predeterminado'
}.
}, función (argv) { ?console.log('hola', argv.name, '¡bienvenido a yargs!')
}) p>
.help()
.argv
$ nodo ejemplo.js --help
outputtest
hola ?bienvenido ter yargs! Opciones:
--name, -n ?proporcione su nombre!
--help ?Mostrar ayuda ?
3. La interacción de la interfaz de usuario del Inquirer es el cuadro de aviso var quer = require('inquirer');
inquirer.prompt([/* Introduzca su pregunta aquí*/]).then( function (answers). ) { // Utilice los comentarios de los usuarios para... ¡¡¡lo que sea }) )
Commander.js
Inquirer.js
chalk.js p>
Instalación: $ npm install app-cli -g
$ createApp