Rumah  >  Artikel  >  hujung hadapan web  >  Memperkemas Organisasi Fail dalam Projek JS: Mengautomasikan fail Bersarang dengan Bash

Memperkemas Organisasi Fail dalam Projek JS: Mengautomasikan fail Bersarang dengan Bash

Patricia Arquette
Patricia Arquetteasal
2024-10-14 06:24:03893semak imbas

Streamlining File Organisation in JS Projects: Automating file Nesting with Bash

Dalam projek JS selalunya anda bermula dengan satu fail untuk komponen, atau apa-apa sahaja dalam hal itu.

Pada peringkat tertentu anda mungkin mendapati anda memerlukan fail tambahan, untuk ujian dll.

cth.

  • komponen saya.tsx
  • my-component.spec.ts
  • my-component.module.css
  • my-component.stories.tsx

Saya mengelak perkara itu,
Saya rasa adalah lebih kemas untuk meletakkan semua fail berkaitan di dalam folder dan menggunakan konvensyen penamaan fail indeks.

Jadi, sebaik sahaja saya memerlukan fail kedua, biasanya saya akan memindahkan my-component.tsx ke sebagai
folder my-component/index.tsx

fail index.js

Untuk modul CommonJS dan esm, kedua-dua fail ini adalah setara

  • my-service.ts
  • my-service/index.ts

Ciri yang bagus untuk ini, ialah import: import { Foo } daripada "./my-service" akan berfungsi dengan kedua-dua fail my-service.ts dan my-service/index.ts, tanpa memerlukan sebarang perubahan kepada laluan import

Masalah Kegusaran

Saya rasa agak memenatkan untuk melakukan tarian...

$ mkdir -p components/my-service
$ git mv components/my-component.tsx components/my-component/index.tsx

Dan jika saya tersalah ingat sama ada fail itu belum lagi di bawah kawalan versi, saya mungkin mendapat

fatal: not under version control, source=components/my-component.tsx,
 destination=components/my-component/index.tsx

-lagi kegusaran..

Atau mungkin lebih menjengkelkan, jika saya tersilap sebaliknya dan menggunakan mv, saya boleh mendapat status git

Changes not staged for commit:
        deleted:    components/my-component.tsx

Untracked files:
        components/my-component/

Memandangkan arahan mv lalai akan dianggap sebagai pemadaman dan penciptaan fail baharu oleh git

Penyelesaian Saya

Saya telah menulis skrip bash untuk mengautomasikan tarian

Contoh

$ ./nest.sh components/my-component.tsx

menghasilkan

$ tree components
components
└── my-component
    └── index.tsx

Jika fail berada di bawah kawalan versi, skrip menggunakan git mv sebaliknya menggunakan mv lama biasa

Contoh 2

berbilang fail...

$ ./nest.sh components/my-component.tsx
$ ./nest.sh components/my-component.spec.ts
$ ./nest.sh components/my-component.css

menghasilkan

$ tree components
components
└── my-component
    └── index.tsx
    └── index.spec.ts
    └── index.css

Lihat skrip bash dalam Github Gist di sini

Saya mempunyai skrip bernama nest yang berada dalam folder bin dalam $PATH saya supaya saya boleh menggunakannya sebagai arahan di mana-mana sahaja

Atas ialah kandungan terperinci Memperkemas Organisasi Fail dalam Projek JS: Mengautomasikan fail Bersarang dengan Bash. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn