Всем привет! Хочу сделать отслеживание файлов twig через gulp, чтобы при изменении файла страница автоматически обновлялась.
В твиге файлы наследуются через такую запись
{% extends '@VendorBundle/base_layout.html.twig' %}
из-за этого вылетают ошибки в галпе, он не понимает что это за путь такой.
Есть ли возможность добавить алиас для галпа чтобы при нахождении такого словосочетания
@VendorBundle
он подставлял тот путь который я ему укажу, например
vendor/bundle/base.html.twig
?
gulpfile.js
/*global require*/
"use strict";
var gulp = require('gulp'),
twig = require('gulp-twig'),
plumber = require('gulp-plumber'),
browserSync = require('browser-sync'),
replace = require('gulp-replace');
/*
* Directories here
*/
var paths = {
build: './public/build/',
};
gulp.task('twig', function () {
return gulp.src(['templates/*.twig'])
.pipe(replace('@VendorBundle', 'vendor/vendor-bundle/Resources/views/'))
// Stay live and reload on error
.pipe(plumber({
handleError: function (err) {
console.log(err);
this.emit('end');
}
}))
.pipe(twig())
.on('error', function (err) {
process.stderr.write(err.message + '\n');
this.emit('end');
})
.pipe(gulp.dest(paths.build));
});
gulp.task('rebuild', ['twig'], function () {
// BrowserSync Reload
browserSync.reload();
});
gulp.task('browser-sync', ['twig'], function () {
browserSync({
server: {
baseDir: paths.build
},
notify: false,
});
});
gulp.task('watch', function () {
gulp.watch([
'templates/**/*.twig',
],
{cwd:'./'},
['rebuild']);
});
gulp.task('build', ['twig']);
gulp.task('default', ['browser-sync', 'watch']);
Ошибка:
Unable to find template file /home/user/PhpstormProjects/application/templates/@VendorBundle/layout.html.twig. Error: ENOENT: no such file or directory, stat '/home/user/PhpstormProjects/application/templates/@VendorBundle/layout.html.twig'