Показать сообщение отдельно
  #1 (permalink)  
Старый 01.07.2016, 17:53
Новичок на форуме
Отправить личное сообщение для inozemcev Посмотреть профиль Найти все сообщения от inozemcev
 
Регистрация: 24.04.2013
Сообщений: 4

Сборка для работы с библиотекой awayjs
Я достаточно недавно стал разбираться с 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 она грузится в том числе со своими галп тасками, но я не понимаю как в итоге всем этим пользоваться.
Ответить с цитированием