Skip to content

zverev/browserify-test

Repository files navigation

Требования

  1. сборка js- файлов
  2. сборка css- файлов
  3. обработка шрифтов и изображений в css. Сборщик должен уметь менять пути на абсолютные
  4. сборка шаблонов
  5. watch
  6. возможность подключать библиотеки, не поддерживающие CommonJS
  7. сборка gulp- и jake- компонентов
  8. множественная сборка (как на fires)
  9. возможность динамической дозагрузки (multiple bundles)

Сборка js- файлов

Скрипты собираем с помощью browserify, в качестве менеджера пакетов используем npm. Если у компонента нет index.js, то в package.json можно указать, какой скрипт нужно подключать. Зависимости отслеживаются автоматически.

Сборка css- файлов

Предполагаем, что каждый компонент хранит ссылку на стили в поле style файла package.json. Анализируем дерево зависимостей и получаем список css- файлов с помощью browserify и parsel-map.

Обработка шрифтов и изображений в css

Решается использованием плагинов gulp-file-assets, gulp-rename и gulp-replace. Ресурсы хранятся по тем же путям, но относительно папки dist. В css-файле меняем пути регуляркой.

  • TODO не обрабатывать http-url.

Сборка шаблонов

Используем browserify transformations (для html-шаблонов brfs). Каждый компонент может использовать свои transformations. Их указываем в browserify.transformations в package.json.

Watch

Watch делится на два потока. Скрипты и шаблоны отслеживаем с помощью watchify. Стили - с помощью gulp.watch.

Возможность подключать библиотеки, не поддерживающие CommonJS

На данный момент реализовать затруднительно, потому как transform, позволяющий это делать не поддерживает конфигурацию через node API. github issue

Сборка gulp- и jake- компонентов

Все используемые модули объявляем в качестве зависимостей в package.json и ставим в node_modules. npm выполняет скрипт postinstall и сам собирает компоненты.

ВАЖНО: npm не устанавливает devDependencies для компонентов в node_modules, так что если компонент требует сборки, то мы либо указываем сборщик и прочее в dependencies, либо добавляем в репозиторий папку dist.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published