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