Prefacio
En el desarrollo del equipo, ya sea escribiendo front-end (JS, CSS, HTML) o back-end, a menudo necesitamos resolver un problema: cómo unificar el estilo del código del equipo. Este artículo utiliza principalmente pregit, eSlint y js-beautify para implementar el control de estilo de código.
Las siguientes son las tres herramientas y métodos de uso:
previo
Esta herramienta puede implementar la función de Git Hook, insertar algunos comportamientos personalizados en el proceso GIT, como ejecutar la detección de código antes de confirmar, y si no pasa, se informará un error.
eslint
Herramienta de auditoría de formato de código, puede combinar y configurar varios estilos a voluntad, y usarlo para formar las especificaciones de código unificados de un equipo.
JS-Beautiful
JS Code Organización y herramientas de embellecimiento.
Luego, las tres herramientas cooperan entre sí para crear los siguientes efectos:
1. El líder del proyecto define las especificaciones del código de Eslint.
2. Use el pre-Git para ejecutar el monitoreo del código de Eslint y el embellecimiento del código JS Beautiful antes de Commit Commit
3. Si se pasa, automáticamente "Git Agregar". se le permitirá empujar.
lograr
1: NPM Instale las herramientas anteriores
$ npm install eslint js-beautify pre-git --save-dev
Dos: configuración de herramientas
Cree un nuevo archivo .eslintrc.json en el directorio raíz y configure las especificaciones, y le dé una versión simplificada:
Nota: Si necesita más pruebas, visite el sitio web oficial de Eslint
{"Reglas": {"coma-dangle": ["error", "nunca"], "fleche-body-style": ["warn", "siempre"], "no-confessign": ["error"]}, "parseroptions": {"ecmaversion": 6}}Debido a las pruebas, siempre hay errores cuando se usan archivos multicapa recursivos JS-Beautiful en Bash, por lo que se utiliza un script para embellecer el código:
beatufyjs.js
const fs = require ('fs'); const ruta = require ('ruta'); const child_process = require ('child_process'); para (Let ARG of Process.argv.splice (2)) {Let PathName = Path.Join (Process.cwd (), arg); if (isFile (path.join (process.cwd (), arg))) {child_process.exec (`./node_modules/js-beautify/js/bin/js-beautify.js -p -e -j -a $ {pathName} -r`, function (error, msg, stderr) {console.log (log (log (log (log ( msg.replace ('////' ',' ')); } else {read_dir (pathname); }} function read_dir (dir) {LET archivos = fs.ReadDirsync (dir); para (dejar archivo de archivos) {let pathName = Path.Join (Dir, archivo); if (isFile (pathname)) {child_process.exec (`./node_modules/js-beautify/js/bin/js-beautify.js -p -e -j -a $ {pathname} -r`, function (error, msg, stderr) {console.log (msg.replace ('/// n; ); } else {read_dir (pathname); }}} function isFile (ruta) {return exists (ruta) && fs.statsync (ruta) .ISFILE (); } La función existe (ruta) {return fs.existssync (ruta) || ruta.existssync (ruta); }Tres: Use las herramientas anteriores
Configurar en el archivo paquete.json:
{"Nombre": "Demo", "Versión": "1.0.0", "Descripción": "", "Main": "index.js", "scripts": {"Lint": "./node_modules/.bin/eslint Routes runtime utils libs --quiet", "lint-fix": "./node_modules/.bin/eslint Routtime runtims livs lives --quiet--Fix "," js-beautify ":" nodo --harmony --use_strict ./bin/beateUfyjs.js libs medias medias index.js "}," autor ":" kelvv "," Licencia ":" ISC "," Config ": {" Pre-Git ": {" Commit-MSg ":": "", "Pre-COMIT": Lint-Fix "," NPM Run JS-Beautify "," Git Add ". ], "Pre-Push": [], "Post Commit": [], "Post-Checkout": [], "Post-fere": []}, "Devdependencies": {"Eslint": "^2.12.0", "JS-Beautify": "^1.6.3", "Pre-Git": "^3.9.1"}}}}}}}}}}En este momento, cuando modifica uno de los archivos y luego "git add && git commit -m 'msg'", se ejecutarán los tres comandos en pre -Commit. Si hay un error en el medio, se detendrá el envío y la envío continuará después de que se complete la modificación.
Una cosa a tener en cuenta es que si algunos problemas de formato no son suficientes para informar un error, el método de modificación modificará automáticamente el código de optimización y lo agregará y modificará automáticamente. En el último paso, solo ejecuta: ¡Git Push ! Se puede combinar con pruebas unitarias, mejor
Resumir
Lo anterior es todo el contenido de cómo revisar automáticamente el código del equipo usando Node.js. Si lo necesita, puede consultarlo.