Проверить и визуализировать зависимости. С вашими правилами. JavaScript. Машинопись. CoffeeScript. Es6, Commonjs, Amd.
Это проходит через зависимости в любом проекте JavaScript, TypeScript, Livescript или CoffeeScript и ...
В качестве побочного эффекта он может генерировать графики зависимости в различных выходных форматах, включая прохладные визуализации, которые вы можете придерживаться стены, чтобы произвести впечатление на бабушку.
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruisernpx depcruise --init Это немного будет осмотреть в вашей среде, задайте вам несколько вопросов и создайте файл конфигурации .dependency-cruiser.js
Чтобы создать график зависимостей в вашей папке SRC, вы запустите крейсер Degy Dependency с dot Type Type и запустите Dot Dot 3 в результате. В одном лайнере:
npx depcruise src --include-only " ^src " --output-type dot | dot -T svg > dependency-graph.svgЗависимость-Круйзер V12 и старше: добавить-опция конфигурации
Несмотря на то, что не требуется от зависимостей V13 и позже, в V12 и старше вам придется передать опцию-config, чтобы найти файл конфигурации.
npx depcruise src --include-only " ^src " --config --output-type dot | dot -T svg > dependency-graph.svg
--include-only и другие параметры командной строки в документации интерфейса командной строки.mermaid , json , csv , html или простой текст, мы также получили ее. Когда вы управляете depcruise --init выше, команда также добавила некоторые правила в .dependency-cruiser.js , которые имеют смысл в большинстве проектов, таких как обнаружение круговых зависимостей , зависимости, отсутствующих в Package.json, сиротах и производственном коде, опираясь на разработки или опционы.
Начните добавлять свои собственные правила, настраивая этот файл.
Правило примера:
{
"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 srcЗависимость-Круйзер V12 и старше: добавить-опция конфигурации
Несмотря на то, что он не требуется от зависимостей-Кризера V13, в V12 и старше вам придется передать опцию-config, чтобы найти файл конфигурации.
npx depcruise --config .dependency-cruiser.js src
Это подтвердит ваши правила и показывает любые нарушения в формате, подобном Eslint:
Есть больше способов сообщить о валидациях; на графике (например, на вершине этого чтения) или в самодостаточном html файле.
depcruise в Package.json Вы пришли в нужное место :-):
Грань

Сделано с? в Голландии.
Мы используем npx в примере сценариев для удобства. Когда вы используете команды в сценарии в package.json нет необходимости префикс их с помощью npx . ↩
Если вы не хотите использовать npx , но вместо этого pnpx (от менеджера пакетов pnpm ) или yarn - пожалуйста, обратитесь к документации этого инструмента. В частности, pnpx имеет семантику, которая отличается от npx , и о том, что вы хотите знать, прежде чем использовать его. В то же время: npx должен работать, даже когда вы устанавливаете зависимость с диспетчера пакетов, отличающимся от npm . ↩
Это предполагает, что команда Graphviz dot доступна - на большинстве Linux и сопоставимых систем, что это будет. В случае, если это не так, см. Страницу загрузки Graphviz 'для инструкций о том, как получить ее на своей машине. ↩