Как загрузить модули, разработанные Require. JS, в приложение Ember. JS? - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь интегрировать стороннюю библиотеку, разработанную с помощью Require. JS, в новое приложение Ember. JS. Я просмотрел такие надстройки, как ember-cli-amd и ember-auto-import, но не могу понять, как заставить их работать для библиотеки, загруженной таким образом

<script data-main="jslib/app/LibConfig" type="text/javascript" src="jslib/modules/require.js"></script>

1 Ответ

3 голосов
/ 12 мая 2020

Добро пожаловать в Stack Overflow!

Таким образом, вы не можете напрямую использовать require. js в Ember, но загрузчик Ember строит для вас версию require. js. Вам просто нужно убедиться, что библиотеки, которые вы хотите использовать, имеют именованный формат AMD или UMD, и вы можете импортировать их с помощью app.import из вашего файла ember-cli-build следующим образом:

// ember-cli-build.js

'use strict';

const EmberApp = require('ember-cli/lib/broccoli/ember-app');

module.exports = function(defaults) {
  let app = new EmberApp(defaults, {
    // Add options here
  });

  // Use `app.import` to add additional libraries to the generated
  // output files.
  //
  // If you need to use different assets in different
  // environments, specify an object as the first parameter. That
  // object's keys should be the environment name and the values
  // should be the asset to use in that environment.
  //
  // 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.

  app.import('vendor/my-awesome-named-amd-library.js');

  return app.toTree();
};

Для получения дополнительной информации см .: https://ember-cli.com/user-guide/#standard-named-amd-asset

В качестве альтернативы посмотрите, находится ли версия библиотеки, которую вы хотите использовать, в npm, и ember-auto-import может определить формат и сделать всю работу за вас.

...