Validar y visualizar las dependencias. Con tus reglas. Javascript. Mecanografiado. Coffeescript. Es6, CommonJS, AMD.
Esto se ejecuta a través de las dependencias en cualquier proyecto JavaScript, TypeScript, Livescript o Coffeescript y ...
Como efecto secundario, puede generar gráficos de dependencia en varios formatos de salida, incluidas las visualizaciones frías, puede pegar en la pared para impresionar a su abuela.
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruisernpx depcruise --init Esto mirará un poco a su alrededor en su entorno, le hará algunas preguntas y creará un archivo de configuración .dependency-cruiser.js en sintonía con su proyecto 1 2 .
Para crear un gráfico de las dependencias en su carpeta SRC, ejecutaría un crucero de dependencia con el tipo de salida dot y ejecutará GraphViz Dot 3 en el resultado. En un delineador:
npx depcruise src --include-only " ^src " --output-type dot | dot -T svg > dependency-graph.svgDependency-cruiser v12 y más: Agregar-opción-config
Si bien no es necesario de Dependency-Cruiser V13 y más tarde, en V12 y más tendrá que pasar la opción--Config para que encuentre el archivo de configuración .Dependency-Cruiser.js:
npx depcruise src --include-only " ^src " --config --output-type dot | dot -T svg > dependency-graph.svg
--include-only y otras opciones de línea de comandos en la documentación de la interfaz de línea de comandos.mermaid , json , csv , html o texto sin formato, también la tenemos cubierta. Cuando ejecutó depcruise --init anterior, el comando también agregó algunas reglas a .dependency-cruiser.js que tienen sentido en la mayoría de los proyectos, como detectar dependencias circulares , dependencias que faltan en paquete.json, los huérfanos y el código de producción que se basa en devoraciones de devoraciones.
Comience a agregar sus propias reglas ajustando ese archivo.
Regla de muestra:
{
"forbidden" : [
{
"name" : " not-to-test " ,
"comment" : " don't allow dependencies from outside the test folder to test " ,
"severity" : " error " ,
"from" : { "pathNot" : " ^test " },
"to" : { "path" : " ^test " }
}
]
}npx depcruise srcDependency-cruiser v12 y más: Agregar-opción-config
Si bien no es necesario de Dependency-Cruiser V13, en V12 y más tendrá que pasar la opción--Config para que encuentre el archivo de configuración .dependency-cruiser.js:
npx depcruise --config .dependency-cruiser.js src
Esto validará contra sus reglas y muestra cualquier violación en un formato de eslint:
Hay más formas de informar validaciones; en un gráfico (como el que está en la parte superior de este readme) o en un archivo html autónomo.
depcruise en el paquete.json Has venido al lugar correcto :-):
MIT

Hecho con? en Holanda.
Estamos usando npx en los scripts de ejemplo para conveniencia. Cuando usa los comandos en un script en package.json no es necesario prefijarlos con npx . ↩
Si no desea usar npx , sino pnpx (del Administrador de paquetes pnpm ) o yarn , consulte la documentación de esa herramienta. Particularmente pnpx tiene semántica que difieren de npx de manera bastante significativa y que desea tener en cuenta antes de usarlo. Mientras tanto: npx debería funcionar incluso cuando instaló la dependencia con un administrador de paquetes diferente de npm . ↩
Esto supone que el comando GraphViz dot está disponible, en la mayoría de los sistemas Linux y comparables, esto será. En caso de que no sea así, consulte la página de descarga de GraphViz para obtener instrucciones sobre cómo obtenerla en su máquina. ↩