0

我最近将 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 项目中生成插件。

4

3 回答 3

4

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

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

至 ...

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

为我工作。希望它也适合你。

于 2015-04-13T08:09:49.727 回答
1

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

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

export default ListenerMixin;

如果你不想这样,你需要改变这一行:module('ListenerMixin');因为它试图在应用程序树中找到那个模块。您也可以将第 2 行更改为import ListenerMixin from 'addon-name/mixins/listener';

于 2015-04-10T10:50:22.843 回答
0

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

于 2015-09-02T16:28:50.287 回答