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