Terinspirasi oleh Middleman, toolchain Node.js ini ditulis dengan batu bata dan koleksi plugin untuk memungkinkan aplikasi Web yang statis.
Fokusnya di sini adalah dengan cepat mengembangkan dan menggunakan aplikasi yang lebih berat pada CSS atau JavaScript, memanfaatkan alat yang memungkinkan pengetikan paling sedikit untuk menyelesaikan pekerjaan (mis. Kurang, stylus, CoffeeScript, Jade). Akhirnya, untuk mengoptimalkan manajemen file sehingga aplikasi Anda memuat secepat mungkin (mungkin melalui beberapa CDN).
Pertama, Anda perlu menginstal server sistasial. Ini benar -benar hanya server BrickSJS+Servitude dengan banyak jalur dan templat yang telah ditentukan.
npm install systatic -g
systatic new my_proj
cd my_proj
systatic
Perintah terakhir menjalankan server, secara default port 3000 (seperti batu bata, Anda dapat mengubah port dengan --port ).
Proyek default yang dihasilkan akan datang dengan file config.json. File ini mendefinisikan berbagai kombinasi sumber dan plugin. Secara umum Anda harus mengikuti pengaturan default, tetapi jika Anda ingin mengubah apa pun (misalnya, ubah rute JavaScripts dari /javascripts ke /js ) ubah file ini.
Karena intinya adalah untuk menghasilkan situs statis, perintah berikutnya yang Anda jalankan akan build . Ini akan menghapus kebutuhan server aplikasi seperti nodeJs, dan memungkinkan Anda untuk membuang file statis di suatu tempat seperti CloudFront.
Ini memerintahkan situs statis ke fase, mirip dengan sistem build yang lebih besar seperti Maven.
Tahapan (mengeksekusi panggung mengeksekusi setiap tahap hingga itu):
Memilih fase akan menjalankan semua plugin yang terpasang hingga dan termasuk fase itu.
systatic merge
Membersihkan direktori output, membangun sumber daya HTML, membangun aset, dan menggabungkannya menjadi file minimal.
systatic test
Melakukan hal yang sama, tetapi kemudian juga menjalankan uji integrasi statis opsional (saat ini tidak ada implementasi, tetapi mempertimbangkan sesuatu seperti qunit)
Dengan konten statis yang dihasilkan, selanjutnya Anda ingin digunakan ke beberapa server, git repo, CDN ... terserah.
systatic publish
Saya sedang mempertimbangkan untuk mengimplementasikan plugin berkode keras untuk bekerja dengan plugin NPM, yang dapat dikonfigurasi per proyek. Ini untuk memungkinkan plugin pihak ketiga menambahkan tahap mereka sendiri ke toolchain build/render.
Pikiran Terkini:
Contohnya mungkin jika seseorang ingin menambahkan fungsi untuk mengompres satu set ikon yang digunakan sebagai CSS ke sprite, dan meneruskan informasi itu ke dalam tindakan berikutnya (yang akan terikat pada tahap kompres).