#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';