Ember CLI импортирует файл ES6 в ember-cli-builds.js

#javascript #ecmascript-6 #ember.js #ember-cli #ember-classic

#javascript #ecmascript-6 #ember.js #ember-cli #ember-классический

Вопрос:

Итак, ember-cli-builds.js в файле четко указано

 // If the library that you are including contains AMD or ES6
// modules that you would like to import into your application
// please specify an object with the list of modules as keys
// along with the exports of each module as its value.
  

Я импортирую обычные файлы javascript таким образом

 app.import('vendor/global.js');
  

но каков правильный способ «указать объект со списком модулей в качестве ключей вместе с экспортом каждого модуля в качестве его значения»?

Комментарии:

1. Вы пробовали app.import({ "global": app.import('vendor/global.js') // etc });

Ответ №1:

В заголовке руководств «Модули AMD Javascript» это описано следующим образом:

Укажите путь к активу в качестве первого аргумента, а список модулей и экспорта — во второй.

 app.import('bower_components/ic-ajax/dist/named-amd/main.js', {
  exports: {
    'ic-ajax': [
      'default',
      'defineFixture',
      'lookupFixture',
      'raw',
      'request'
    ]
  }
});
  

Теперь вы можете import использовать их в своем приложении. (например import { raw as icAjaxRaw } from 'ic-ajax'; )

Ссылка из руководства

Комментарии:

1. Спасибо @ykaragol

Ответ №2:

Ответ на выбор касается более старого ember, предварительного автоматического импорта ember (webpack) и предварительного Ember Octane.

В современном ember после npm install установки пакета вы сможете выполнять импорт непосредственно из этого пакета.

Пример:

 npm install qs
  

затем в любом месте вашего приложения

 import qs from 'qs';
  

в связи с этим рекомендуется избегать размещения файлов в папке поставщика, которую вы хотите интегрировать с системой модулей. поставщик существует за пределами пакета, поэтому, если у вас есть автономный модуль, вы можете поместить его в свою app папку, возможно, в какую-нибудь описательную папку:
app/external-modules/global.js , позволяя вам импортировать из него, как:

 import * as globalStuff from '<my-app>/external-modules/global';