Ember-cli需要(" my_app / app")["默认"]。创建不是函数

时间:2015-03-25 12:40:47

标签: javascript ruby-on-rails ember.js ember-cli

我将我的项目从Rails应用程序中的嵌套资产迁移到Ember-Cli的单独前端。我已经在很长一段时间内遇到了以下问题:

在我的终端中运行$ Ember serve并使用Chrome打开localhost:4200时,我在控制台中收到以下错误:Uncaught TypeError: undefined is not a function中的app-boot.js:25

在该行上存在以下代码:

require("my_app/app")["default"].create({
  "defaultLocale":"en",
  "name":"my_app",
  "version":"0.0.0.bece32c1"
});

我在该行添加了断点并检查是否定义了require("my_app/app",并且它是Object {default: Class}所以我检查了是否定义了默认对象属性,这也是如此:

Class {modulePrefix: "my_app", podModulePrefix: undefined,
       Resolver: function, _readinessDeferrals: 1, $: function…}

require("my_app/app")["default"]的控制台输出可以在以下屏幕截图中看到:

enter image description here

这是我的config/environment文件的内容:

enter image description here

这是我的app/index.html文件的内容:

enter image description here

这是我的app/app.js文件的内容:

enter image description here

我使用的是最新版本的Ember-cli,Ember v1.10.0,ember-data v1.0.0-beta.15和Jquery 1.11.2

=============更新1:app-boot.js的起源==================

有人询问app-boot.js所在的位置,因为他只熟悉https://github.com/ember-cli/ember-cli/blob/master/lib/broccoli/app-boot.js 以下是Chrome中资源窗格的屏幕截图,显示它实际上是ember-cli的编译供应商资产。

enter image description here

==更新2:评论I18N导入并在初始化中包含常量==

我确实做了一些重构并评论了可能存在冲突的I18N导入。我还在Ember app初始化中包含了常量。请参阅下面的截图,了解当前版本的app.js

enter image description here

据我所知,我没有编辑我的Brocfile.js,但最终决定包含它的屏幕截图,因为它可能包含一个错误..你永远不知道..

enter image description here

我希望有人知道这个问题的解决方案,或者可以指出我正确的方向。如果您需要更多信息,请不要犹豫!

提前致谢,

Alexander Jeurissen

1 个答案:

答案 0 :(得分:4)

协同(见讨论)跟踪:

使用

Ember.Application.extend

而不是

Ember.Application.create

app\app.js中(例如在https://github.com/ember-cli/ember-cli/blob/master/blueprints/app/files/app/app.js中)。