【问题标题】:ember-cli 0.2.1 - generated addon test cannot find mixinember-cli 0.2.1 - 生成的插件测试找不到 mixin
【发布时间】:2015-03-28 18:19:05
【问题描述】:

我最近将 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

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

为了让测试找到模块,我需要更改哪些内容?

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

但是这一行:

ember init

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

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

【问题讨论】:

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


【解决方案1】:

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

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

到...

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

为我工作。希望它也对你有用。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2015-05-30
        • 1970-01-01
        • 1970-01-01
        • 2014-11-03
        • 1970-01-01
        • 1970-01-01
        • 2016-01-19
        • 1970-01-01
        • 2023-04-07
        相关资源
        最近更新 更多