我正在将我的项目从 Rails 应用程序中的嵌套 Assets 迁移到使用 Ember-Cli 的单独前端。我已经被以下问题困扰了很长一段时间:
在我的终端中运行 $ Ember serve
并使用 Chrome 打开 localhost:4200
时,我在控制台中收到以下错误:Uncaught TypeError: undefined is not
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 中资源 Pane 的屏幕截图,显示它实际上是 ember-cli 的已编译 vendor Assets 。
== 更新 2:在初始化中注释 I18N 导入和包含常量 ==
我确实做了一些重构并评论了可能存在冲突的 I18N 导入。我还在 Ember 应用程序初始化中包含了常量。 app.js
的当前版本见下面的截图:
据我所知,我没有编辑我的 Brocfile.js
,但还是决定包含它的屏幕截图,因为它可能包含一个错误……你永远不知道……
我希望有人知道这个问题的解决方案或者可以指出正确的方向。如果您需要更多信息,请随时询问!
提前致谢
亚历山大·尤里森
最佳答案
作为协作(见讨论)追踪:
使用
Ember.Application.extend
代替
Ember.Application.create
在您的 app\app.js
中(如在 https://github.com/ember-cli/ember-cli/blob/master/blueprints/app/files/app/app.js 中)。
关于javascript - Ember-cli require ("my_app/app") ["default"].create 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29255957/