0

我想预编译我的 ember 模板。我为此安装了一个应用程序,但我只能预编译一个文件。

我需要选择所有扩展名为 .hbs 的文件,包括子文件夹

我试过了ember-precompile "components/**/*.hbs" -f precompiledTemplates.js

我收到错误消息

错误:ENOENT,没有这样的文件或目录 'components\**\*.hbs'

我怎么说程序在所有子文件夹中查找 .hbs 文件?

4

2 回答 2

0

我认为这可能不是 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"] )
于 2014-04-02T18:59:30.203 回答
0

在处理 windows 文件结构和通配符时,Ember-Precompile 代码中似乎存在限制。

在 Windows 上运行 ember-precompile 时,您必须通过 cygwin 终端或类似终端执行此操作(在我的情况下,我使用 git bash)。

作为 git bash 中的示例,当我在项目文件夹中键入以下行时,它适用于我: ember-precompile templates/*.handlebars -f templates/templates.js

于 2014-04-11T14:52:02.497 回答