ember-cli 0.2.1 - 生成的插件测试无法找到mixin

时间:2015-03-28 18:19:05

标签: ember.js ember-cli ember-cli-addons

我最近将ember-cli 0.2.0升级到0.2.1并运行以下命令生成mixin:

ember g mixin listener

生成文件位于addon/mixins/listener.js

生成的测试如下所示:

import Ember from 'ember';
import ListenerMixin from '../../../mixins/listener';
import { module, test } from 'qunit';

module('ListenerMixin');

// Replace this with your real tests.
test('it works', function(assert) {
  var ListenerObject = Ember.Object.extend(ListenerMixin);
  var subject = ListenerObject.create();
  assert.ok(subject);
});

测试失败,并显示以下错误消息:

  

无法找到从中导入的模块dummy/mixins/listener   dummy/tests/unit/mixins/listener-test

我的mixins应该在/addons/而不是/app/

我需要更改哪些测试才能找到模块?

当我从0.2.0升级到0.2.1时,我按照文档进行升级并运行文档中的所有步骤

但是这一行:

ember init

返回此错误,我认为这与它有关:

  

不支持在现有的ember-cli项目中生成插件。

3 个答案:

答案 0 :(得分:4)

我在Ember-CLI 0.2.3上遇到了这个问题,看起来解析器仍然存在Mixins的问题,它是插件的一部分。我通过替换Ember-CLI的默认值解决了这个问题:

import MyMixin from '../../../mixins/my-mixin';

到...

import MyMixin from '[addon-name]/mixins/my-mixin';

适合我。希望它也适合你。

答案 1 :(得分:1)

您可以在应用树中创建另一个mixin,以便与父应用树的树合并。

import ListenerMixin from 'addon-name/mixins/listener';

export default ListenerMixin;

如果您不想这样做,则需要更改此行:module('ListenerMixin');,因为它会尝试在应用树中找到该模块。您也可以将第2行更改为import ListenerMixin from 'addon-name/mixins/listener';

答案 2 :(得分:0)

这可能是ember-cli@1.13.8的已知问题,目前正在调查中: https://github.com/ember-cli/ember-cli/issues/4633