Подтвердить что ты не робот

TypeScript комплектация и минимизация?

Предположим, у меня есть два файла

AFile.ts

/// <reference path="ZFile.ts" />
new Z().Foo();

ZFile.ts

class Z
{
    Foo() { }
}

Есть ли способ генерировать все сценарии в одном файле js в том порядке, в котором он нужен (нужно ZFile до AFile, чтобы получить определение Z)?

4b9b3361

Ответ 1

Теперь VS Typescript Расширение поддерживает слияние с одним файлом.
Убедитесь, что вы установили расширение Tools -> Extensions and Updates (VS2015 имеет его по умолчанию)

введите описание изображения здесь

Перейдите к свойствам проекта и отметьте Combine JavaScript output into file: введите описание изображения здесь

Важно иметь /// <reference /> (как в вопросе), он помогает tsc упорядочить файлы по зависимостям до слияния.

<ч/" > Тогда для пучка минимизации можно использовать как обычно:

bundles.Add(new ScriptBundle("~/bundles/finale").Include("~/js/all.js"));

и в поле зрения

@Scripts.Render("~/bundles/finale")

Ответ 2

В событиях после сборки я добавил вызов TypeScript компилятора

tsc "..\Content\Scripts\Start.ts" --out "..\Content\Scripts\all.js"

В конфигурации пучка я добавил

bundles.Add(new ScriptBundle("~/scripts/all").Include("~/Content/Scripts/all.js"));

В файле _Layout.cshtml я добавил

@Scripts.Render("~/Scripts/all")

И с этим я получил

<script src="/Scripts/all?v=vsTcwLvB3b7F7Kv9GO8..."></script>

Это все мой script в одном файле.


Компилятор не минимизирует, вам нужно использовать пакеты и компилировать в Release или установить

BundleTable.EnableOptimizations = true;

Вы также можете минимизировать использование веб-Essentials или захватить содержимое и minifing в другом месте.

Ответ 3

Используйте параметр -out.

tsc AFile.ts ZFile.ts --out single.js

Компилятор typescript автоматически выполнит навигацию по зависимостям.

Ответ 4

Предполагая, что все ваши ts файлы прямо или косвенно находятся под папкой say 'ts', вы можете написать tt script, который объединил все .js файлы (но не min.js) в файл myApp.js и все ваши файлы min.js в myApp.min.js.

Чтобы получить упорядочение файлов, вы можете обрабатывать подпапки таким образом:

string[] FolderOrder =
{
    @"libs\utils\",
    @"libs\controls\",
    @"app\models",
    @"app\viewmodels",
    @".",
};