我想预编译我的余烬模板。我为此安装了一个应用程序,但我只能预编译一个文件。
我需要选择扩展名为.hbs的所有文件,包括子文件夹
我尝试了ember-precompile "components/**/*.hbs" -f precompiledTemplates.js
我收到错误说
错误:ENOENT,没有这样的文件或目录'components \ ** \ * .hbs'
如何在所有子文件夹中查找.hbs文件的程序?
答案 0 :(得分:0)
我认为它可能不是Windows问题,但是我想使用的库的限制(ember-precompile)。
相反,我选择使用效果良好的gulp https://www.npmjs.org/package/gulp-ember-handlebars
这是我用于预编译ember模板的coffeescript gulpfile。在启动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"] )
答案 1 :(得分:0)
在处理Windows文件结构和通配符时,Ember-Precompile代码中似乎存在限制。
在Windows上运行ember-precompile时,必须通过cygwin终端或类似程序(在我的情况下使用git bash)。
作为git bash的一个例子,当我在我的项目文件夹中键入下面的行时,它适用于我: ember-precompile templates / * .handlebars -f templates / templates.js