Gulp и Drupal

Матеріал з Wiki.Zina
Версія від 18:27, 24 січня 2016, створена >WikiSysop
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Сначала установите и настройте Gulp.

Интеграция Browsersync с Drupal

[ред. | ред. код]

Установите в Drupal модуль browsersync:

drush en browsersync -y

Откройте в админке Drupal admin/appearance/settings/ВАША_ТЕМА и в секциии «Browsersync settings» настройте:

  • [✓] Enable Browsersync
  • Host: ВАШ_ДОМЕН
  • Port: 3000

Автоматическая очистка кэша Drupal

[ред. | ред. код]

Установите плагин gulp-shell:

sudo npm install gulp-shell --save-dev

В gulpfile.js добавьте задачу, которая будет очищать кэш Drupal.

Затем эту задачу можно вызывать из других задач, например, при перегенерации Sass в CSS.

// Clear all caches
gulp.task('clearcache', function() {
  return shell.task(['drush cc all']);
});

Исправление ошибки Drush 'segmentation fault'

[ред. | ред. код]

Из-за того, что в папке node_modules, в которой Gulp сохраняет файлы плагинов проекта, встречаются файлы .info, Drush воспринимает их как файлы модулей Drupal, находит в них несоответствие синтаксиса и выдает ошибку 'segmentation fault'.

Чтобы это исправить, просто будем автоматически удалять все файлы .info в папке node_modules.

Откройте файл package.json, перейдите к секции "scripts": и замените строку:

"test": "echo \"Error: no test specified\" && exit 1"

на следующую:

"postinstall": "find node_modules/ -name '*.info' -type f -delete"

Создайте в папке темы (там же, где находится файл package.json) файл .npmrc и добавьте в него строку:

unsafe-perm = true

Также папку папку node_modules можно очищать от файлов .info с помощью скрипта npm_post.sh:

#!/bin/sh
find -L ./node_modules -type f -name "*.info" -print0 | while IFS= read -r -d '' FNAME; do
    mv -- "$FNAME" "${FNAME%.info}.inf0"
done

Этот скрипт нужно запускать после добавления в Gulp новых плагинов с помощью команды npm install.

См. также: How do I prevent Drupal raising a segmentation fault when using a Node.js theming workflow?

Выполните команду:

npm install

Эту команду нужно запускать, когда в файл package.json добавляются новые плагины.

Папка node_modules с плагинами может быть довольно большого размера — десятки мегабайт, поэтому ее нужно исключать при использовании git и во время создания резервных копий.

Чтобы исключить папку node_modules из git, нужно создать файл .gitignore, в который добавить строку:

node_modules/

Чтобы исключить папку node_modules из архива при создании резервной копии, нужно использовать параметр exclude:

--tar-options="--exclude=%themes/*/node_modules"

Соответственно, если проект будет клонироваться из git или восстанавливаться из резервной копии, будет необходимо запускать команду npm install, чтобы были снова установлены все компоненты Gulp.