无法在Windows上的子文件夹中选择所有.hbs文件

时间:2014-04-02 14:17:34

标签: windows-8 ember.js wildcard precompiled-templates

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

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

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

我收到错误说

  

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

如何在所有子文件夹中查找.hbs文件的程序?

2 个答案:

答案 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