Търся да очертая структурата на нашите нови уеб компоненти и в момента не съм сигурен, че съм намерил инструмент, който ще направи всичко, което в идеалния случай искаме, или се доближава много, но изглежда, че ще бъде доста обичайно нещо, което искате да направите в днешно време.
Имаме уеб приложение, което работи с Java от страна на сървъра, докато от страната на клиента използваме силно JavaScript и SASS, сред други неща. Търсим да преструктурираме част от нашата кодова база и да компонентизираме определени аспекти от съдържанието на нашата динамична страница.
Например, бихме искали да имаме стандартен компонент за таблица, който може да бъде разработен напълно независимо от пълното уеб приложение. Виждам, че компонентът на таблицата има следните 3 основни файла:
- table.js
- table.scss (нашият SASS файл, който се компилира в CSS файл)
- table.tmpl (нашият шаблонен файл, който в крайна сметка се компилира в JS функция, напр. използвайки нещо Handlebars като машина за шаблони)
И след това да помогнем за развитието:
- table-test.html (тестова страница с някои фиктивни данни)
- table-qunit.js (Qunit тестове)
Надяваме се, че всички тези файлове ще бъдат компилирани в следното:
- components.js - table.js и table.tmpl компилирани и минимизирани и след това изтеглени в някакъв по-голям JS файл с всички останали компоненти
- components.css - table.scss компилиран и компресиран и обединен с всички останали CSS компоненти
Инструменти, които разгледах:
- requireJS - изглежда е много насочен към управление на зависимости на JS с известна мисъл за файлове с ресурси, но не мога да намеря нищо за използването му и CSS предварителни процесори като SASS. Въпреки това много ми харесва идеята за управление на зависимостите на AMD JS.
- Grunt – пакет с възли, който прави част от това, което искаме
- Sprockets - внедряване на Ruby на нещо подобно на това, което искаме
- Javascript Maven плъгин – Най-близък по отношение на езици/библиотеки ( ние вече използваме Java и Maven), но отново, изглежда разглежда само управлението на зависимостите на JavaScript, а не CSS, или поне SASS файлове с ресурси.
Някой има ли по-добри предложения от тези по-горе? Нещо, което се доближава малко до това, което търсим? В идеалния случай би било за предпочитане нещо, което не изисква Node.js или Ruby...