2017-01-31 5 views
0

Я просто пытаюсь скомпилировать hbs-шаблоны с помощью Browserify и Gulp, но процесс компиляции завершается с ошибкой, как только любая HTML-разметка встречается из моего hbs-файла.node-hbsfy не компилирует шаблоны с помощью Gulp

Я подтвердил это, удалив код HTML в файле hbs, после чего Browserify работает как ожидалось.

Вот упрощенная версия моей Глоток задачи:

const _gulp = require('gulp'); 
const _browserify = require('browserify'); 
const _remapify = require('remapify'); 
const _hbsfy = require('hbsfy'); 
const _vinylSourceStream = require('vinyl-source-stream'); 
const _vinylBuffer = require('vinyl-buffer'); 

_gulp.task('js:dev',() => { 
    return _browserify({entries: './src/js/app.js', debug: true}) 
    .plugin(_remapify, [ 
     { 
     src: '**/*.hbs', // glob for the files to remap 
     cwd: './src/markup/components', 
     expose: 'components' // this will expose './src/markup/components' as 'components' 
     } 
    ]) 
    .transform(_hbsfy) 
    .bundle() 
    .pipe(_vinylSourceStream('app.js')) 
    .pipe(_vinylBuffer()) 
    .pipe(_gulp.dest('dist')) 
}); 

Шаблон HBS:

<div class="menu"> </div> 

Основной JS файл:

(function(){ 
    const _handlebars = require('hbsfy/runtime'); 

    function init() { 
    _handlebars.registerPartial('menu', require('components/menu.hbs')); 
    } 

    document.addEventListener('DOMContentLoaded', init); 
})(); 

Что может быть неправильно? Это похоже на то, что преобразование hbsfy не работает должным образом ...

ответ

0

Кажется, эта проблема на самом деле вызвана плагином remapify. Компиляция работает как ожидалось, используя вместо этого pathmodify.

Вот мой обновленный Глоток файл:

const _gulp = require('gulp'); 
const _browserify = require('browserify'); 
const _pathmodify = require('pathmodify'); 
const _hbsfy = require('hbsfy'); 
const _vinylSourceStream = require('vinyl-source-stream'); 
const _vinylBuffer = require('vinyl-buffer'); 

_gulp.task('js:dev',() => { 
    return _browserify({entries: './src/js/app.js', debug: true}) 
    .plugin(_pathmodify, { 
     mods: [ 
     _pathmodify.mod.dir('components', process.cwd() + '/src/markup/partials/components') 
     ] 
    }) 
    .transform(_hbsfy) 
    .bundle() 
    .pipe(_vinylSourceStream('app.js')) 
    .pipe(_vinylBuffer()) 
    .pipe(_gulp.dest('dist')) 
});