Validasi dan visualisasikan dependensi. Dengan aturan Anda. Javascript. Naskah. CoffeeScript. ES6, CommonJS, AMD.
Ini berjalan melalui dependensi dalam proyek JavaScript, naskah, livescript atau CoffeeScript dan ...
Sebagai efek samping, ia dapat menghasilkan grafik ketergantungan dalam berbagai format output termasuk visualisasi keren Anda dapat menempel di dinding untuk mengesankan nenek Anda.
npm install --save-dev dependency-cruiser
# or
yarn add -D dependency-cruiser
pnpm add -D dependency-cruisernpx depcruise --init Ini akan sedikit melihat-lihat di lingkungan Anda sedikit, mengajukan beberapa pertanyaan dan membuat file konfigurasi .dependency-cruiser.js yang selaras dengan proyek Anda 1 2 .
Untuk membuat grafik dependensi di folder SRC Anda, Anda akan menjalankan kapal penjelajah dependensi dengan dot output dan menjalankan graphviz dot 3 pada hasilnya. Dalam satu liner:
npx depcruise src --include-only " ^src " --output-type dot | dot -T svg > dependency-graph.svgKetergantungan-Cruiser V12 dan Lebih Lama: Tambahkan-Opsi Config
Meskipun tidak perlu dari ketergantungan-kruiser V13 dan lebih baru, di V12 dan lebih tua Anda harus lulus opsi-konfigurasi untuk membuatnya menemukan file konfigurasi .dependency-cruiser.js:
npx depcruise src --include-only " ^src " --config --output-type dot | dot -T svg > dependency-graph.svg
--include-only opsi baris perintah dan perintah lainnya dalam dokumentasi antarmuka baris perintah.mermaid , json , csv , html atau teks biasa, kami juga telah dilindungi. Ketika Anda berlari depcruise --init di atas, perintah tersebut juga menambahkan beberapa aturan ke .dependency-cruiser.js yang masuk akal di sebagian besar proyek, seperti mendeteksi ketergantungan melingkar , dependensi yang hilang dalam paket package.json, yatim , dan kode produksi yang mengandalkan dependensi dev atau opsional.
Mulailah menambahkan aturan Anda sendiri dengan mengubah file itu.
Aturan sampel:
{
"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 srcKetergantungan-Cruiser V12 dan Lebih Lama: Tambahkan-Opsi Config
Meskipun tidak perlu dari ketergantungan-cruiser V13, di V12 dan lebih tua Anda harus lulus opsi-konfigurasi untuk membuatnya menemukan file konfigurasi .dependency-cruiser.js:
npx depcruise --config .dependency-cruiser.js src
Ini akan memvalidasi terhadap aturan Anda dan menunjukkan pelanggaran dalam format seperti Eslint:
Ada lebih banyak cara untuk melaporkan validasi; Dalam grafik (seperti yang ada di atas readme ini) atau dalam file html mandiri.
depcruise di package.json Anda telah datang ke tempat yang tepat :-):
Mit

Dibuat dengan? di Belanda.
Kami menggunakan npx dalam contoh skrip untuk kenyamanan. Saat Anda menggunakan perintah dalam skrip di package.json tidak perlu untuk mengawali mereka dengan npx . ↩
Jika Anda tidak ingin menggunakan npx , tetapi sebaliknya pnpx (dari pnpm Package Manager) atau yarn - silakan merujuk ke dokumentasi alat itu. Khususnya pnpx memiliki semantik yang berbeda dari npx cukup signifikan dan Anda ingin menyadari sebelum menggunakannya. Sementara itu: npx harus bekerja bahkan ketika Anda menginstal ketergantungan dengan manajer paket yang berbeda dari npm . ↩
Ini mengasumsikan perintah graphviz dot tersedia - pada sebagian besar sistem Linux dan sebanding ini. Jika tidak, lihat halaman unduhan GraphViz untuk instruksi tentang cara mendapatkannya di mesin Anda. ↩