2016-01-20 5 views
3

Я пытаюсь использовать стороннюю библиотеку .js в приложении Angular 2/Typcript. В Интернете есть несколько примеров (например, использование declare var libraryVar: any;), но ничего не работает. Есть ли один правильный способ интеграции библиотеки .js в TypScript/Angular2?Как использовать стороннюю библиотеку js в приложении Angular 2/Typcript?

+0

Какая библиотека? Попробуйте TSD. –

+0

uuid.js Я думаю, что могу найти его на Определенно, но не уверен, что делать дальше. –

+0

tsd install uuid --save, bower install node-uuid --save, setup tsconfig.js файл для игнорирования компонентов bower, –

ответ

0

Лучший способ, которым я нашел использовать внешнюю библиотеку, - создать переменную для нее в верхней части вашего машинописного текста и импортировать js. Таким образом, переменная предложит все функции, которые библиотека предоставляет внутри вашего TS без дополнительной работы.

например, если вы хотите использовать moment.js для вычисления времени. добавить это в ваши TS файл

var moment = require("./scripts/moment"); 

после этого вы можете использовать функции внутри вашей машинописи, непосредственно используя переменную

moment.fromNow("SOMEDATE"); 

я столкнулся точно проблема пару дней назад, и я увидел, что это хорошая подгонка. Еще один опрятный способ - создать класс типов с помощью всех помощников и ссылаться на машинописный текст на ваш файл и вызвать помощников внутри. Все еще экспериментируйте по сплошной схеме, но это будет отправной точкой.

+1

Я получаю эту ошибку, когда я пытаюсь: ReferenceError: require не определен –

+0

Я не знаю, t считают, что это работает в Angular 2. – Jeff

+0

не работает с угловым 2 – Michael

3

There are some examples on the web (like using declare var libraryVar: any;) but nothing seems to work. Is there a one correct way to integrate a .js library into a Typescript/Angular2

Возможно, вы забыли поставить declare var libraryVar:any; через vendor.d.ts файл, который не имеет не корневого уровня импорта/экспорта.

Подробнее: https://basarat.gitbooks.io/typescript/content/docs/types/migrating.html

1

Веб полон примеры машинописи проектов, потребляющих 3-библиотеки.

Here является одним из моих, который использует arcgis-js-api.

И Here - это тот, который использует openlayers.

В вашем случае вы бы попробовать это:

bower init 
bower install node-uuid --save 
tsd install uuid --save 

Затем настройки файла tsconfig.json. Я думаю, что Angular 2 использует systemjs, поэтому вы хотите установить module = "system" (см. system), если у вас нет причин.

Я не очень везло с systemjs, но вам может понадобиться, чтобы сделать что-то вроде этого, чтобы заставить его загрузить UUID или любые другие модули AMD:

window.define = System.amdDefine; 
window.require = System.amdRequire; 

system-api См объяснения.

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