使用Ember入门套件从Ember 1.8.1更新为Ember 1.9

时间:2018-01-04 11:43:18

标签: javascript ember.js handlebars.js

我目前正在更新使用Ember 1.8.1至1.9和Handlebars 2.0的Ember Starter套件构建的Ember应用程序。我试图成功更新而不必重构很多代码 - 我希望这是可能的。

目前,我在控制台中收到错误:“错误:未知模板对象:函数”。从我读到的是因为我使用的模板编译器只能理解Handlebars 1.3。我目前正在使用Gulp来编译我的模板。我已经从gulp-ember-templates转移到gulp-handlebars,这表明我可以使用特定的Handlebars版本编译我的模板。

这就是我的'模板'gulp任务的样子:

gulp.task('templates', function () {
    gulp.src(paths.dev.templates + '**/*.hbs')
    .pipe(handlebars({
        handlebars: require('handlebars')
    }))
    .pipe(wrap('Handlebars.template(<%= contents %>)'))
    .pipe(declare({
        namespace: 'TM.TEMPLATES',
        noRedeclare: true,
    }))
    .pipe(concat('templates.js'))
    .pipe(gulp.dest('public/app'))
});

..而我的package.json有

  "devDependencies": {
    "handlebars": "^2.0.0"
  }

我读过我可能需要更新运行时版本,但我不知道我能在哪里做到这一点所以我假设我从NPM安装了最新的ember-template-compiler并在我的gulpfile中引用它以下

//COMPILE ALL PULGIN FILES
gulp.task("all", function(){
    return gulp.src([
            paths.dev.vendor + "jquery/dist/jquery.js",
            paths.dev.vendor + "handlebars/handlebars.js",
            "/node_modules/ember-template-compiler/lib/main.js",
            paths.dev.vendor + "ember/ember.js", 
        ])
        .pipe(concat("all.js"))
        .pipe(gulp.dest("public/js/"));  
});

......它会起作用。

不幸的是,我仍然得到'错误:未知的模板对象:函数'。我知道我可以尝试将应用程序迁移到Ember CLI,目前还没有容量。

感谢。

0 个答案:

没有答案