Fast-Static — Модуль Node.js, Который Значительно Упрощает Жизнь

При разработке js и css файлов удобнее сохранять их в исходном виде, но в продакшене их нужно сворачивать и объединять.

Существует несколько систем сборки, однако использовать их очень сложно и проблематично.

По крайней мере, они мне надоели до такой степени, что я решил написать свой сборник.

Это оказалось очень удобно, поэтому я решил поделиться этим с вами.

Еще одна проблема, которую я решил побороть — неудобство подключения файлов в html. Для того, чтобы подключить один файл нужно написать:

  
  
  
   

<script type="text/javascript" src=".

"></script>

Если файлов 20, то все превращается в мешанину, в которой сложно что-либо найти.

В этом случае скрипты и CSS необходимо включить в разные части страницы.

А если вам нужно, например, перенести бутстрап в другой каталог, то вам нужно изменить пути в начале и в конце страницы.

В общем, я решил, что так соединить файлы будет гораздо быстрее:

<use> file1.css file2.js dir/ file3.js file4.css </use>

Я также добавил для использования несколько приятных особенностей .

Например, вставив текущий домен (хост).

Но моя песня не об этом.

Чтобы тега use было достаточно и не создавать файл с конфигом сборки, мне пришлось написать свой промежуточный софт для экспресса.

Те.

сборка происходит «на лету»: когда браузер запрашивает файл в продакшене, он возвращается минифицированным, хотя в исходном виде находится на диске.

Я включил автоматическую компиляцию less, sass, Coffeescript, Jade, Haml и md. Что тоже происходит на лету.

Естественно, все это может не лучшим образом сказаться на производительности производственного сервера.

Поэтому в производстве результаты кэшируются в памяти.

А пока добавил кеширование результатов после gzip (зачем процессор зря нагружать).

Также доступно кэширование на стороне браузера (ETag).

В целом получилось быстрее стандартного статического промежуточного программного обеспечения Express/Connect и требует меньше нагрузки на диск и камень.

Стандартное промежуточное программное обеспечение дважды берет статистику файла и считывает файл с диска, а затем архивирует результат. Мой просто выплевывает данные из памяти.

Это связано в несколько строк

npm install fast-static



var fastStatic= require('fast-static'); app.use('/static',fastStatic.use('.

/static')); // app.use('/static',app.static('.

/static'));

Затем вместо скрипта/ссылки используйте тег use в html-файлах.

Вот и все.

Только не забудьте изменить env на проданных серверах.

В целом получилась удобная система сборки.



Функции

  • Преобразует: кофе, хамл, меньше, нефрит, нахальство, MD
  • Упрощенное подключение файлов через тег use
  • Автоматическое определение mime-типа по расширению
  • поддерживает gzip (кэширует gzip в памяти)
  • поддерживает кэш на стороне браузера (ETag)
Когда env=production выполняет оптимизацию
  • минификация css, js и html
  • объединение файлов
  • вставляет небольшие изображения в CSS
  • кэширует результаты в памяти
Полная документация на GitHub: https://github.com/Hkey1/fast-static

ОБНОВЛЯТЬ

В новой версии появились файлы в каталоге dir/*.

Появилось простое включение библиотек — достаточно добавить название и версию в тег use. Например, «бутстрап 3.1.1».

Кэш на стороне браузера значительно ускорен.

Теги: #node.js #js #CSS #HAML #less #sass #jade #jade #jade #md #project build #Express #Express.js #node.js

Вместе с данным постом часто просматривают: