2016-06-10 1 views
0

Я пытаюсь импортировать этот модуль в ember.js (версии 2.5) приложение:Импорт модуля 3 участника в Эмбер

https://github.com/hapijs/nes/blob/master/lib/client.js

Это, как я это делаю (после docs):

app.import('bower_components/nes/lib/client.js', { exports: { 'nes': ['default', 'client'] } }); 

И импорт декларации:

import client from 'nes'; 

Теперь я получаю ошибку ниже:

loader.js:201 Uncaught Error: Could not find module nes imported from myapp.com/components/chart-widget

Я предполагаю, что оператор импорта правильно и фактический модуль не экспортирует себя таким образом, Ember может потреблять его. Однако, как я могу это исправить? Есть ли способ написать обертку вокруг сторонних библиотек, таких как этот?

+0

Можете ли вы вставить строку из 'component/chart-widget', где вы действительно импортируете свой модуль? –

+0

См. Обновленный вопрос. Я также попытался импортировать, например import {client} из nes и импортировать nes из nes, но на самом деле не работал ... –

ответ

2

TL: DR Ваш модуль доступен как глобальная переменная с nes.Client.

Вы смотрите неправильный раздел в руководстве. hapijs/nes не является стандартным активом AMD и поэтому не может быть напрямую импортирован с использованием ключевого слова import. Это означает, что ваша библиотека будет найдена в глобальном контексте.

Отладка через bower_components/nes/lib/client.js покажет вам, что код ветвления в этом случае: https://github.com/hapijs/nes/blob/master/lib/client.js#L24

Вы можете просто получить доступ к модулю третьей стороны через глобальную переменную с именем nes.Client.

Если вы хотите получить к нему доступ с ключевым словом ES6 import для большей ясности, вы можете создать опцию поставщика, как описано в руководстве: https://ember-cli.com/user-guide/#managing-dependencies.

Обратите внимание, что это не удалит nes из глобального контекста и позволит вам импортировать его с помощью ключевого слова import.

Смежные вопросы