我将我的项目从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"]
的控制台输出可以在以下屏幕截图中看到:
这是我的config/environment
文件的内容:
这是我的app/index.html
文件的内容:
这是我的app/app.js
文件的内容:
我使用的是最新版本的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的编译供应商资产。
==更新2:评论I18N导入并在初始化中包含常量==
我确实做了一些重构并评论了可能存在冲突的I18N导入。我还在Ember app初始化中包含了常量。请参阅下面的截图,了解当前版本的app.js
:
据我所知,我没有编辑我的Brocfile.js
,但最终决定包含它的屏幕截图,因为它可能包含一个错误..你永远不知道..
我希望有人知道这个问题的解决方案,或者可以指出我正确的方向。如果您需要更多信息,请不要犹豫!
提前致谢,
Alexander Jeurissen
答案 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中)。