Использование опции просмотра node-sass с grunt-sass

Как настроить grunt-sass, чтобы он также отслеживал изменения, используя базовую опцию наблюдения node-sass?

Я понимаю, что могу достичь той же функциональности с помощью grunt-contrib-watch, чтобы следить за изменениями и повторно запускать задачу grunt-sass, но это будет медленнее, поскольку она будет перекомпилировать все это, а не просто компилировать изменения.

Спасибо!


person RanM    schedule 14.03.2018    source источник


Ответы (1)


Отвечая на мой собственный вопрос, если это может помочь кому-то еще:

Единственный способ решить эту проблему — использовать интерфейс командной строки node-sass через grunt. Для этого установите замечательную задачу grunt-exec и настройте ее на выполнение команды с --watch вариант.

Пример использования (с поддержкой нескольких каталогов includePath):

exec: {
   nodeSass: {
      cmd: function() {
         // Include path option string built from the gruntConfig.cssFiles array.
         var includeFilesOption = gruntConfig.cssFiles.map(function(cssFilePath) {
            return '--include-path ' + cssFilePath;
         }).join(' ');

         return 'node-sass app/scss/style.scss app/generated/style.css' + includeFilesOption + ' --watch';
      }
   }
}

Вам также потребуется установить node-sass через npm. В этом случае вы можете просто добавить в свой package.json файл следующее:

"scripts": {
   "install": "npm install node-sass -g"
},
person RanM    schedule 16.03.2018
comment
У этого есть и другие преимущества, кстати. Использование grunt-contrib-watch для запуска grunt-compass не только медленнее, но и генерирует новый файл css, в то время как это решение только обновляет файл css. Результатом является мягкое обновление через опцию livereload, а не полная перезагрузка страницы. - person RanM; 16.03.2018