Cómo construir Node.js (tutorial detallado)
Razón
En el trabajo, es necesario desarrollar un andamio para proporcionar comodidades de desarrollo relevantes para los usuarios relevantes.
Para el público
Tenga cierta comprensión de las operaciones de front-end y nodos, y pregunte a los desarrolladores que comprendan el proceso de desarrollo del andamio o que necesiten implementar un andamio ellos mismos.
Objetivo
Desarrollar un andamio sencillo que pueda ser instalado por los usuarios.
Se pueden generar indicaciones relevantes.
Leer y escribir archivos de usuario.
Utilice scripts de Shell en la compilación.
Pasos
Desarrollo de scaffolding
El proceso inicial de desarrollo de scaffolding es el mismo que el de los proyectos front-end normales, y requiere un archivo de entrada command.js y un archivo de configuración package.json
A diferencia de otros archivos de configuración, debe agregar los siguientes elementos al archivo package.json:
{
... ,
" bin": {
" cm-cli": "command.js "
}
}Después de agregar esto elemento en el archivo de configuración, solo Debe ejecutar el comando npm link en el directorio raíz del archivo de configuración y puede usar el comando cm-cli - help para ver el andamio cm-cli cargado.
Si publica su scaffold, podrá usarlo globalmente después de que otros usuarios usen el comando npm install -g cm-cli.
Preguntar al usuario
En los comentarios y comandos, necesitamos usar el paquete Commander, que se puede instalar usando npm install Commander. (Si la versión de NPM es inferior a 5, debe agregar el parámetro -save para asegurarse de que el archivo de configuración package.json esté actualizado).
Commander es una potente función que proporciona a los usuarios entrada de línea de comandos y análisis de parámetros. Si es necesario, puede leer la documentación de la biblioteca correspondiente. Aquí presento los dos métodos más utilizados.
Opción
Puede inicializar objetos de parámetros definidos por el usuario, establecer palabras clave y descripciones, y configurar parámetros de entrada del usuario para leer. El uso específico es el siguiente:
const Commander = require(' Commander ');
commander.version('1.0.0 ')
. opciones('-a, -aaa', 'aaaaa')
. opciones('-b,-bbb','bbbbb')
. opciones('-c, -CCC[nombre]', 'ccccc')
. parse(proceso . argv);
if (commander.aaa) {
consola log(' AAA ');
}
if (commander.bbb) {
consola . log(' BBB ');
}
if (commander.ccc) {
console.log('ccc ', comandante . CCC);
}La visualización específica es la siguiente:
Comando
Este método puede Se puede utilizar para agregar comandos a la línea de comando Agregar comando. Después de ejecutar el comando, el usuario puede ejecutar la lógica en la devolución de llamada. El uso específico es el siguiente:
Comandante
. comando('init & ltextensionId & gt')
. descripción("Inicializar proyecto de extensión")
.
Operación ((id de extensión) = & gt; {
console . log(` init Proyecto de extensión " $ { ID de extensión } " `);
//Haz lo que necesites
}); El efecto de visualización específico es el siguiente:
Leer y escribir archivos de usuario.
A través de los pasos anteriores, hemos podido completar un andamiaje simple. A continuación, debemos leer la configuración del usuario y generar algunos archivos de plantilla para el usuario.
Leer archivo
Ahora, necesitamos leer el archivo de configuración cm-cli.json del usuario para realizar alguna configuración.
Podemos usar el módulo de archivo fs de Node.js para leer el progreso del archivo. Como no hay muchas dificultades aquí, lo omitimos.
Escribir plantilla de archivo
Almacenamos el archivo de plantilla en la CDN con anticipación y luego descargamos la plantilla según el archivo de configuración de andamio relevante leído localmente.
Nota: La ruta leída en scaffold es la ruta actual cuando el usuario la usa, por lo que no hay forma de almacenar el archivo de plantilla en scaffold para su lectura.
Podemos utilizar bibliotecas como request para ayudarnos a descargar archivos y simplificar los pasos de la operación. Ejecute la solicitud de instalación de npm para instalar.
Nota: Al escribir un archivo, se recomienda determinar primero si el archivo existe antes de sobrescribirlo.
Uso de scripts de Shell
En comparación con las funciones API proporcionadas por Node.js, algunas personas prefieren usar scripts de Shell para operaciones de archivos. Afortunadamente, también podemos introducir node-cmd en nuestra compilación para admitir scripts de shell. Ejecute npm install node-cmd para instalar.
Ejemplos específicos son los siguientes:
Comandante
. comando('init & ltextensionId & gt')
. descripción("Inicializar proyecto de extensión")
. Operación ((id de extensión) = & gt; {
id = ID de extensión
console . log(` init Proyecto de extensión " $ { ID de extensión } " `);
cmd.get(
`
mkdir -p static/${extensionId}
mkdir tmp
mkdir tmp/ archivo fuente
mkdir tmp/archivo de compilación
curl -o tmp/archivo fuente/index.js? filename=index.js
toque tmp/archivo fuente /index.css
curl -o tmp/build-file/server.js? filename=server.js
curl -o tmp/build-file/router.js? =router.js
curl-o tmp/build-file/package .JSON? filename=package.json
CP tmp/source-file/* static/ $ { ID de extensión }
cp tmp/build-file/*.
/
rm -fr tmp
instalación npm
`,
(err, data)= & gt;{
console.log(data)
If (! uh){
console.log('Inicialización exitosa');
Return;
}
console.error("Error de inicialización");
});
}); podemos usar scripts de Shell rápidamente. para crear carpetas y descargar plantillas de archivos.
Resumen
El scaffolding se puede ejecutar rápidamente en la terminal y se pueden agregar campos relevantes al archivo de configuración package.json.
El andamio debe poder leer la entrada relevante del terminal y puede desarrollarse rápidamente utilizando la biblioteca Commander.
Scaffolding debe poder ejecutar scripts de Shell y la biblioteca node-cmd se puede utilizar para implementar requisitos rápidamente.
He recopilado lo anterior para usted, espero que le sea útil en el futuro.
Artículos relacionados:
Cómo hacer un cono con JS+canvas
Una revisión del algoritmo de clasificación JS
Mecanismo de bucle de eventos JS (Tutorial detallado)
Cómo mostrar el álbum de fotos de QQ Space con javascript
Cómo personalizar el inicio de sesión con código de escaneo WeChat de PC
Obtenga más información sobre el uso del motor de plantillas de jade .
Acerca del algoritmo de clasificación JS Hill (tutorial detallado)