2015-04-14 2 views
1

Я использую Ember-CLI, и теперь я столкнулся с проблемой импорта AmplifyJS в моем проекте. Я загрузил Amplify с помощью Bower, однако библиотека не находится в формате ES6. Поэтому, когда я пытаюсь использовать его в своем проекте, я просто не могу его импортировать.Как импортировать библиотеку non amd ember-cli

В основном я хотел бы сделать:

import Amplify from amplify; 

//use amplify here 

Brocfile.js

app.import('bower_components/amplify/lib/amplify.js'); 

Так много библиотек не в формате ES6 все же, на мой вопрос: «Есть ли способ легко импортировать или использовать ES5 librairies в ES6 ».

Если нет, то какой рекомендуемый способ сделать это в Ember?

ответ

1

Вы не можете import Amplify from amplify;, потому что это не модуль.

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

Из документов:

Укажите путь активов в качестве первого и единственного аргумента:

app.import('bower_components/moment/moment.js'); 

Здесь вы бы использовать этот пакет, как указано это документация, как правило, глобальная переменная. В этом случае было бы:

import Ember from 'ember'; 
/* global moment */ 
// No import for moment, it's a global called `moment` 

// ... 
var day = moment('Dec 25, 1995'); 

Примечание: Не забудьте сделать JSHint счастливым, добавив /* global MY_GLOBAL */ к модулю, или определив его в разделе predefs вашего файла .jshintrc.

- http://www.ember-cli.com/#standard-non-amd-asset

+0

Так что в основном Ember сильно нажимает на ES6, но в других местах мы не можем использовать его правильно, это облом. – CoachNono

+0

Я не уверен, что ты имеешь в виду. Эта библиотека не была написана как модули ES6. Это не ошибка Эмбера ... Если бы это было написано как модули ES6, вы могли бы использовать его как таковой. – HeroicEric

+0

Большое вам спасибо за/* global ... */advice, я просто пропустил эту часть, чтобы мой ESLint сотрудничал. –

0

Если вы посмотрите на линии 15 кода https://github.com/mikehostetler/amplify/blob/master/lib/amplify.js#L15, библиотека присоединяясь к global который проходит здесь https://github.com/mikehostetler/amplify/blob/master/lib/amplify.js#L124

Так в основном вы можете напрямую использовать глобальную версию библиотека в любом месте, как amplify.subscribe(...)

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