2015-04-05 74 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