Правильная структура машинописного текста и уплотнение

Я пытаюсь использовать машинописный текст с модулями в качестве пространств имен со структурой папок.

/ns1/ns2/class1.ts
          class2.ts
usage.ts

где использование.ts может сделать:

new ns1.ns2.class1();
new ns1.ns2.class2();

Если бы это был чистый js, я бы сделал все это с помощью requirejs.

  1. Создавать модули без пространства имен
  2. Ссылка на модули для использования
  3. Используйте R.js для сжатия требуемых объектов в один файл.

я нашел это

  • Установка режима AMD в машинописном тексте создает модули, но не очень хорошо работает с их экспортом, поскольку каждый модуль должен быть импортирован с помощью оператора импорта, поскольку ns больше не является глобальным.

Мой вопрос:

Каков правильный способ сжать, скажем, 300 сгенерированных файлов js, если вы не сделали бы это с r.js?

А также

Кто-нибудь нашел лучший способ с помощью машинописного текста:

  • сделать require('ns1',function(ns1){...}) так, чтобы я мог сделать новый ns1.ns2.class1(), новый ns1.ns2.class2()
  • хранить все классы в своих собственных файлах и в этих пространствах имен

Похоже, у вас могут быть либо модули, либо все глобальное в пространствах имен ... не то и другое.


person maxfridbe    schedule 11.07.2013    source источник


Ответы (1)


Если у вас есть два файла typescript, ссылающихся друг на друга с помощью ///reference, и вы компилируете с флагом --out компилятора, typescript объединит два (или n количество) файлов для вас.

person basarat    schedule 11.07.2013
comment
Это здорово, я делаю: tsc --out out.js use.ts, и это генерирует все общие js в один файл. Затем я использую requirejs, чтобы скрыть файл и открыть ns1!! именно то, что я искал - person maxfridbe; 11.07.2013