2015-04-05 81 views
6

我想将Underscore作为命名模块导入到我的Ember CLI插件中。纵观导游的Standard AMD Asset部分,看来这应该工作:如何将Underscore导入我的Ember CLI插件作为模块?

app.import(app.bowerDirectory + '/underscore/underscore.js', { 
    exports: { 
    'underscore': ['default'] 
    } 
}); 

下面是Underscore's source行:

define('underscore', [], function() { 
    return _; 
}); 

我试图将其导入我的文件之一,/addon/utils/class.js

import _ from 'underscore'; 

,并得到了一个错误:

Could not find module underscore imported from ember-cli-mirage/utils/class

我做错了什么?

+0

奇怪,我尝试了同样的事情,但我没有遇到错误。 app.import语句在我的应用程序中将_初始化为全局,而如果我尝试从'underscore'执行'import _',则应用程序根本不会加载。 – 2015-04-26 13:35:38

回答

3

这是problemif (typeof define === 'function' && define.amd)

define.amd在灰烬-CLI的loader.js定义not

解决方案:

  • 自己包裹。
  • 使用browserify做包装你
  • 使用LoDash而不是(这是我的建议 - 简单,peazy,问题解决&你的时间在海滩酒吧额外轮mojitos的;))。
+1

不错,谢谢! fyi,我相信[ember-browserify](https://github.com/ef4/ember-browserify)很快就会减轻这些痛点,因为下划线还会导出一个commonjs模块 – 2015-06-17 18:02:56