Я создал пример приложения Angular2, в котором один из моих модулей использует внешнюю библиотеку (остальные), например:
/// <reference path="../../typings/tsd.d.ts" />
import rest = require('rest');
import jsonpClient = require('rest/client/jsonp');
import mime = require('rest/interceptor/mime');
...
я использовал
tsd install rest
которые поместили rest.d.ts в каталог "typings" и использовали
bower install rest
чтобы получить версию среды выполнения (это нигде не объяснялось. Я предполагаю, что мне нужно сделать что-то подобное?)
Я настроил свой скрипт gulp для копирования двух каталогов из bower_components ("отдых" и его зависимость "когда") в dist/lib
Само приложение компилируется нормально, но в браузере оно не может разрешить зависимости остальных/когда модулей.
я добавил
System.config({
"baseURL": "/",
"transpiler": "traceur",
"paths": {
"components/*": "components/*.js",
"provider/*": "provider/*.js",
"services/*": "services/*.js",
"model/*": "model/*.js",
"rest": "lib/rest/rest.js",
"rest/*": "lib/rest/*.js",
"when": "lib/when/when.js",
"when/*": "lib/when/*.js",
"*": "lib/*.js"
}
});
в мой файл index.html, и я, вероятно, мог бы продолжать добавлять файлы в этот список, но почему-то это кажется... неправильным.
Конечно, не может быть правильно, что я должен перечислять внутреннюю файловую структуру каждого пакета в моем index.html? Я вижу, что модуль «когда» предполагает найти свои зависимости в «./lib», где «остальное» имеет совершенно другую структуру.
Итак, мои вопросы:
Что я неправильно понял в том, как импортировать пакеты javascript, управляемые через Bower (или npm), в клиентскую часть Angular2?
Мне действительно нужно перечислять каждый файл каждого модуля в System.paths, чтобы он работал?