2016-08-15 1 views
0

Из того, что я могу установить node-sass-middleware, который я использую для компиляции файлов .scss в Express, повторно компилирует файлы .css из моих .scss файлов при каждом запросе.Как сделать связующее звено узла-sass не перекомпилировать каждый раз, даже если никаких изменений?

Это не идеальный вариант для производственной среды, я бы предпочел, чтобы он только перекомпилировал файлы, если они были изменены с момента последней компиляции. Я предполагаю, что это возможно, обнюхивая целевые папки/файлы в некотором роде, но мне было интересно, есть ли простой способ достичь этого, о котором я не знаю. Может быть, флаг для node-sass или что-то, что мне не хватает, хотя я ничего не могу найти в документации.

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

Надеюсь, кто-то может помочь! Спасибо!

ответ

0

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

Я сделал тест:

  1. запустил приложение и запросил страницу, чтобы файл .css составлен впервые
  2. Сделано примечание last modified времен .css файла
  3. просили страница снова
  4. По сравнению с текущим last modified раз предыдущий, и не найдено никаких изменений.
  5. Сделано изменение t о файле .scss
  6. Еще раз по сравнению с last modified времени и обнаружил, что она изменилась, в дополнении к изменениям стиля отражается на странице

Как таковой я вывод, что node-sass-middleware как-то обнаруживает, что никаких изменений нет был сделан и не излишне перекомпилирует Sass, что прекрасно знать. Я думаю, что в сочетании с возможностью кэширования файлов CSS в ОЗУ это очень эффективное решение из коробки.

Примечание: Я провела дополнительное тестирование и обнаружила, что перезапуск приложения приведет к повторной компиляции Sass, даже если никаких изменений в файле .scss не было произведено, и существующий файл .css совершенно прав. Это говорит о том, что есть немного больше, чем просто обнюхивание содержимого папки/файла.

+0

Другое наблюдение: кажется, что он перекомпилируется через определенный промежуток времени (я не уверен, но это не менее пяти минут), несмотря ни на что. Это не имеет никакого отношения к опции maxAge, потому что даже когда я установил это на несколько секунд, он не перекомпилировался через минуту или около того. –

Смежные вопросы