Я достаточно недавно стал разбираться с workflow javascript проектов поэтому возможно мой вопрос касается не столько непосредственно библиотеки awayjs сколько общего понимания импорта модулей и согласования зависимостей.
Итак, я смог настроить стандартный workflow проекта
на простейшем greeter примере. Этот пример работает не с чистым javascript, а с typescript. Сначала код компилируется в javascript и на втором этапе собирается итоговая сборка, включающая в себя преобразования типа browserify, sourcemaps и прочее.
Для подключения библиотеки awayjs я инсталировал ее в локальный репозиторий, используя npm
Код:
|
npm install awayjs-full --save-dev |
Библиотека теперь в репозитории node_packages и доступна для typescript кода, он видит все классы библиотеки:
import * as awayjs from "awayjs-full";
class Away3D {
// engine variables
private _view: awayjs.View;
// private cameraController: awayjs.HoverController;
constructor() {
this.init();
}
private init(): void {
console.log("Init Away3D");
this.initEngine();
};
private initEngine(): void {
console.log("Init Engine");
this._view = new awayjs.View(new awayjs.DefaultRenderer());
}
};
window.onload = function () {
new Away3D();
};
Проблема в том что после компиляции итогового javascript кода, сам javascript уже этубиблиотеку не видит и соответсвенно не может завернуть ее классы в итоговый .js. gulp таск который заворачивал до этого greeter не может импортировать библиотеку и ругается на require("awayjs-full").
Я не понимаю что делать дальше. Насколько я понял в исходном примере с greeter работая с дополнительными библиотеками типа jquery они подтягивались не из node js репозитория а откуда то еще, в частности я работал с typings, при сборке bundle я давал ссылку на tsd.d.ts этого репозитория вместе с исходниками typescript, в файле были ссылки на интерфейсы jquery, chai и jasmine в формате typescript.
Но я не совсем понимаю пока какое они имели отношения к итоговым библиотекам на .js. Тем не менее greeter собирался и работал и с jquery и c jasmine тестами.
Правильно ли я понимаю что проблема в этом или есть что-то еще? В репозитории typings awayjs библиотеки пока нет, она исключительно в npm. У самой библиотеки все исходники открыты и лицензия позволяет свободно использовать ее в проектах. при инсталяции в node_packages она грузится в том числе со своими галп тасками, но я не понимаю как в итоге всем этим пользоваться.