Всем привет друзья, на связи Валерий Столярчук. В этом материале я расскажу о том, как реализовать автообновление страницы сайта в браузере после изменения PHP файлов. И в целом о настройке Gulp для разработки WordPress темы или посадки клиентского проекта на WordPress.
Вспомните, сколько раз вам приходилось обновлять страницу в браузере после внесенных изменений в PHP файлы? И как же это надоедает.. Знакомое чувство ? В этой статье мы решим эту проблему. Погнали!
Приступим к настройке livereload с использованием Gulp . В своем примере я буду проводить настройку именно для работы с WordPress. Также, вам ничего не помешает перенести эти настройки для работы с любой другой CMS или PHP фреймворком. Для работы на компьютере должен быть в обязательном порядке установлен Node.js с пакетным менеджером NPM.
Шаг 1. Настраиваем Livereload с помощью gulp
После установки Node.js необходимо глобально в систему установить Gulp, делается это командой: npm i gulp -g
далее:
- Создаем папку gulp в по следующему пути:
wordpress/content/gulp
- Создаем 2 файла:
package.json
иgulpfile.js
Содержимое файла: package.json
{ "name": "Project", "version": "1.0.0", "description": "", "devDependencies": { "browser-sync": "^2.18.6", "gulp": "^3.9.1", "gulp-autoprefixer": "^3.1.1", "gulp-sass": "^3.1.0", } }
После сохранения данного файла можно приступить к установке компонентов для Gulp. Используя команду npm i
(вы должны открыть терминал в ранее созданном каталоге gulp )
После успешной установки всех компонентов вы увидите примерно такое окно, с сообщением в количестве добавленных пакетов и затраченному времени на добавление:
added 743 packages in 6.547s
Шаг 2
Настройка файла gulpfile.js
В своем примере я использую Gulp не только для Livereload, а также для работы с SASS файлами, вы можете оставить или удалить эти таски.
var gulp = require('gulp'), sass = require('gulp-sass'), autoprefixer = require('gulp-autoprefixer'), browserSync = require('browser-sync').create(); gulp.task('browser-sync', [], function() { browserSync.init({ proxy: 'localhost:8888/bober', //ссылка на локальный сайт notify: false }); }); gulp.task('styles', function () { return gulp.src('../themes/your-theme/assets/sass/**/*.sass') //Название папки вашей темы (your-theme) .pipe(sass({ includePaths: require('node-bourbon').includePaths }).on('error', sass.logError)) .pipe(autoprefixer({browsers: ['last 15 versions'], cascade: false})) .pipe(gulp.dest('../themes/your-theme/assets/css')) //Название папки вашей темы .pipe(browserSync.stream()); }); gulp.task('watch', function () { gulp.watch('../themes/your-theme/assets/sass/**/*.sass', ['styles']); //Название папки вашей темы (your-theme) gulp.watch('../themes/your-theme/*.php').on("change", browserSync.reload); //Название папки вашей темы (your-theme) }); gulp.task('default', ['browser-sync', 'watch']);
Шаг 3
Это последний шаг настройки автообновления в браузере, в котором вам останется лишь:
- Запустить ваш сервер
- Запустить Gulp
- Наслаждатся работой Livereload
Запуск Gulp делается командой gulp
в терминале (вы должны открыть терминал в ранее созданном каталоге gulp )
После чего в вашем браузере автоматически откроется новая ссылка.
Пример: localhost:3000
Если вы внесете изменения в любой PHP файл темы, страница в браузере перезагрузится автоматически и вы сможете увидеть внесенные изменения на сайте. Теперь вам не понадобится обновлять страницу вручную, за вас все сделает livereload. Поверьте это очень экономит время и такие мелкие приемы незаметно ускоряют процесс разработки.
Результат урока:
Если у вас в браузере открылась ссылка сгенерированная при помощи Gulp и ваш сайт отображается в браузере, спешу вас поздравить - мы настроили Livereload. А если что-то пошло не так, обращайтесь за помощью в комментарии.