我用ember-engines 0.4.0,ember-cli 2.10.0创建了一个独立的可路由引擎。
如果调用引擎索引路由(/thingy/),则会出现此错误:
Assertion Failed: Asset manifest does not list any available bundles.
消费应用程序router.js
this.mount('thingy-frontend', { as: 'thingy', path: 'thingy' });引擎应用程序routes.js
this.route('index', { path: '/' });引擎是通过消费node_modules/应用程序的ember-cli dir中的符号链接“安装”的。(看这里为什么)。
只是为了好玩我试着改变路线来测试它是否有效..。
消费应用程序router.js
this.mount('thingy-frontend', { as: 'thingy' });引擎应用程序routes.js
this.route('index', { path: 'new' });我给/thingy/new打了电话,得到了一个UnrecognizedURLError。另外,如果我调用根路径,就会得到一个Assertion Failed: Asset manifest does not list any available bundles.
另外,如果我在引擎console.log('...');中放置了一个index.js,我就看不到任何输出。好像根本没装子弹。
该设置受官方自述文件和官方示例repos的启发。
知道如何修复这个Ember引擎吗?
您可以在GitHub上找到repos:
发布于 2016-12-23 09:57:00
我们可以解决这个问题。有几个问题,我将与你们分享我们所做的事情:
1.添加成员引擎作为依赖项(不仅仅是开发依赖项)
您必须将ember-engines作为package.json中的依赖项添加到应用程序和引擎中。因此,我们将package.json更改为:
"dependencies": {
"ember-cli-htmlbars": "^1.0.10",
"ember-cli-babel": "^5.1.7",
"ember-data": "^2.10.0",
"ember-engines": "0.4.0"
}别忘了去npm install。
2.将实际引擎添加到package.json中
即使它在node_modules中不是公开的和符号链接的,就像我们的例子一样,您也必须将引擎添加到package.json中。
在我们的例子中,这是"thingy-frontend": "*"。
别忘了去npm install。
3.检查符号链接名称
在我们的例子中,符号链接使用的是引擎回购的名称,而不是实际的引擎名称。那不管用。我们将符号链接名更改为thingy-frontend (这是引擎index.js中的名称)。
4.使用正确的解析器
您必须确保,在addon/engine.js和app/resolver.js中都使用ember-resolver。
5.未能加载资产清单。
这可能是ember-engines中的一个bug。有关详细信息,请参阅此问题:https://github.com/ember-engines/ember-engines/issues/282#issuecomment-268834293
您可以通过手动将<meta />-Tag添加到<head> (请参阅上面的GitHub问题链接)来解决该问题。
非常感谢迈克尔·唐纳森!
发布于 2016-12-22 10:06:04
我无法从消费应用程序package.json中找到你的引擎应用程序的参考。我认为您应该添加到消费package.json引擎应用程序。对于回购加载项-引擎,我可以找到在成员-引擎-演示,在package.json,他们有:
"ember-addon": {
"paths": [
"lib/ember-chat-engine"
]
}但对于正常的模块,它们有:
"dependencies": {
"ember-data": "^2.6.0",
"ember-engines": "dgeb/ember-engines#v0.2",
"ember-blog-engine": "dgeb/ember-blog-engine"
},注意余烬-博客-引擎。这里是他们的package.json的全部参考。
然而,在您的消费馀烬引擎-应用程序应用程序package.json不列出馀烬引擎-引擎名称。
成员处理来自package.json列表的加载项,所以你必须参考你的引擎加载项。否则,您将永远无法从在Ember环境中执行的此类包中获得任何代码行。
请添加您的余烬引擎-引擎消费应用程序package.json。
发布于 2017-07-07 22:51:21
我想补充的是,不兼容也可能是一个问题.
由于Ember引擎是实验性的,并且正在针对Ember和Ember的主分支开发,请确保您使用的是兼容版本。
https://stackoverflow.com/questions/41207713
复制相似问题