首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置余烬引擎?

如何设置余烬引擎?
EN

Stack Overflow用户
提问于 2016-12-18 11:05:49
回答 3查看 2.8K关注 0票数 2

我用ember-engines 0.4.0ember-cli 2.10.0创建了一个独立的可路由引擎。

如果调用引擎索引路由(/thingy/),则会出现此错误:

Assertion Failed: Asset manifest does not list any available bundles.

消费应用程序router.js

代码语言:javascript
复制
this.mount('thingy-frontend', { as: 'thingy', path: 'thingy' });

引擎应用程序routes.js

代码语言:javascript
复制
this.route('index', { path: '/' });

引擎是通过消费node_modules/应用程序的ember-cli dir中的符号链接“安装”的。(看这里为什么)。

只是为了好玩我试着改变路线来测试它是否有效..。

消费应用程序router.js

代码语言:javascript
复制
this.mount('thingy-frontend', { as: 'thingy' });

引擎应用程序routes.js

代码语言:javascript
复制
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:

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-23 09:57:00

我们可以解决这个问题。有几个问题,我将与你们分享我们所做的事情:

1.添加成员引擎作为依赖项(不仅仅是开发依赖项)

您必须将ember-engines作为package.json中的依赖项添加到应用程序和引擎中。因此,我们将package.json更改为:

代码语言:javascript
复制
"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.jsapp/resolver.js中都使用ember-resolver

5.未能加载资产清单。

这可能是ember-engines中的一个bug。有关详细信息,请参阅此问题:https://github.com/ember-engines/ember-engines/issues/282#issuecomment-268834293

您可以通过手动将<meta />-Tag添加到<head> (请参阅上面的GitHub问题链接)来解决该问题。

非常感谢迈克尔·唐纳森

票数 6
EN

Stack Overflow用户

发布于 2016-12-22 10:06:04

我无法从消费应用程序package.json中找到你的引擎应用程序的参考。我认为您应该添加到消费package.json引擎应用程序。对于回购加载项-引擎,我可以找到在成员-引擎-演示,在package.json,他们有:

代码语言:javascript
复制
"ember-addon": {
    "paths": [
      "lib/ember-chat-engine"
    ]
 }

但对于正常的模块,它们有:

代码语言:javascript
复制
"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。

票数 4
EN

Stack Overflow用户

发布于 2017-07-07 22:51:21

我想补充的是,不兼容也可能是一个问题.

由于Ember引擎是实验性的,并且正在针对Ember和Ember的主分支开发,请确保您使用的是兼容版本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41207713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档