axy.define: бициклет на тему CommonJS
Добрый день!
Решил освежить в памяти JS и разобраться в новых веяниях, а то как-то забросил его. Начал с TypeScript и node.js, а заодно задумался на тему организации кода и какой-то модульной системы. И, чтобы всё это совместить, написал на TypeScript модульную систему, которая эмулирует ноду в браузере. Не совсем, конечно, эмулирует, но немного. Собственно, вот: axy.define. Имеется некая виртуальная файловая система, в которой в виде файлов лежат модули и любые другие данные, с ними можно работать с помощью модуля fs. require() ищет модули внутри этой "ФС". Полный алгоритм ноды: относительные пути, поиск по node_modules + системные каталоги, подстановка расширений, индексные файлы, package.json... Можно написать аяксовый загрузчик и модули с данными будут прозрачно подсасываться с сервера. Частично реализованы некоторые элементы окружения, global, process, модули ядра, такие как fs, path. Пример Ссылка Тестовое приложение тупо меняет цвет страницы на серый. Для сборки проекта есть утилита в виде npm модуля, которая запускается из командной строки с нужными опциями. Рекурсивно и асинхронно обходит каталог с исходниками, заключает модули во врапперы, записывает всё в итоговый каталог. В примере тестовый проект собран вместе с node_modules в которой лежит сама утилита сборки. В браузере же: 1. Из "командной строки" опять запускается сборка проекта уже в виртуальной ФС. 2. Собранный проект запускает отдельную песочницу. 3. В песочнице опять проходит сборка с нуля. 4. Собранный повторно проект уже запускается и меняет цвет страницы. 5. Стандартный поток вывода перенаправлен из консоли в дивы. Такой вот трэш. Вопросы 1. Почему данное решение шлак? 2. Кто использует на данную тему, что-нибудь кроме бабеля? Какие отзывы? |
Открой для себя WebPack / Browserify и ES6 модули.
|
Ну, да, это самый очевидный и ожидаемый ответ.
Я и не позиционирую своё творение, как некое откровение. Просто, джаст-фо-фан. Выложил - может кто-нибудь глянет и конструктивную критику выскажет. Но раз о webpack заговорили: 1. Кто имел более-менее продолжительный опыт с вебпаком на мало-мальски крупном проекте? Насколько он стабилен? Какие минусы имеются? 2. Насколько, действительно, удаётся писать один и тот же код для ноды и браузера? 3. Насколько, эта возможность вообще востребована? 4. TypeScript - кто-нибудь плотно использовал? Какие отзывы? |
Часовой пояс GMT +3, время: 01:38. |