Не могу выбрать все файлы.hbs в подпапках на окнах

Я хочу предварительно скомпилировать шаблоны ember. Для этого я установил приложение, но могу предварительно скомпилировать только один файл.

Мне нужно выбрать все файлы с расширением.hbs, включая подпапки

Я старался ember-precompile "components/**/*.hbs" -f precompiledTemplates.js

Я получаю сообщение об ошибке

Ошибка: ENOENT, нет такого файла или каталога 'components\**\*. Hbs'

Как мне сказать, программа ищет файлы.hbs во всех подпапках?

2 ответа

Кажется, что в коде Ember-Precompile есть ограничение при обработке файловой структуры Windows и подстановочных знаков.

При запуске ember-precompile в Windows вы должны сделать это через терминал cygwin или аналогичный (в моем случае я использую git bash).

В качестве примера в git bash, когда я печатаю строку ниже в папке проекта, она работает для меня: ember-precompile templates/*. Handlebars -f templates/templates.js

Я подумал, что это, вероятно, не проблема Windows, а ограничение библиотеки, которую я хотел использовать (ember-precompile).

Вместо этого я решил использовать gulp, который хорошо работает https://www.npmjs.org/package/gulp-ember-handlebars

Вот мой gulffile coffeescript для предварительной компиляции шаблонов ember. После запуска gulp, он компилирует мои шаблоны, и, если один из шаблонов изменяется, gulp перекомпилируется.

gulp = require("gulp")
concat = require("gulp-concat")
handlebars = require("gulp-ember-handlebars")

gulp.task( "default", ["precompile-ember-templates"], ()->
    # default tasks complete
)

gulp.task( "precompile-ember-templates", ()->

    console.log("recompiling templates")

    gulp.src( ["client/components/**/*.hbs"] )
        .pipe( handlebars({outputType: 'browser'}) )
        .pipe( concat("templates-compiled.js") )
        .pipe( gulp.dest("client/public/") )
)

gulp.watch( "client/components/**/*.hbs", ["precompile-ember-templates"] )
Другие вопросы по тегам