Как импортировать Underscore в мой аддон Ember CLI как модуль?

Я пытаюсь импортировать Underscore как именованный модуль в свой аддон Ember CLI. Глядя на раздел руководств Standard AMD Asset, кажется, что это должно сработать:

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

Вот строка из источника Underscore:

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

Я попытался импортировать его в один из своих файлов /addon/utils/class.js:

import _ from 'underscore';

и получил ошибку:

Не удалось найти модуль underscore, импортированный из ember-cli-mirage/utils/class

Что я сделал не так?


person Sam Selikoff    schedule 05.04.2015    source источник
comment
Странно, я попытался сделать то же самое, но не столкнулся с ошибкой. Оператор app.import инициализирует _ как глобальное значение в моем приложении, тогда как, если я попытаюсь сделать import _ from 'underscore', приложение вообще не загрузится.   -  person Max Wallace    schedule 26.04.2015


Ответы (1)


Это проблема: if (typeof define === 'function' && define.amd)

define.amd не определен в загрузчике ember-cli .js.

Решения:

  • Заверните сами.
  • Используйте browserify, чтобы обернуть за вас
  • Вместо этого используйте LoDash (это то, что я предлагаю - легко, непринужденно, проблема решена, и у вас будет время для дополнительного раунда мохито в баре на пляже;)).
person rollingBalls    schedule 15.06.2015
comment
хорошо, спасибо! fyi, я считаю, что ember-browserify скоро уменьшит эти проблемы, поскольку подчеркивание также экспортирует commonjs модуль - person Sam Selikoff; 17.06.2015