Как передать компилятору TypeScript несколько исходных файлов?

TypeScript разработан для крупномасштабных проектов JavaScripty, которые обычно состоят из нескольких файлов, созданных внутри компании, а также библиотек, созданных извне. Как компилятор TypeScript (tsc) ожидает, что вы предоставите ему полный набор файлов, из которых состоит проект?


person CCoder    schedule 02.10.2012    source источник
comment
Пока не могу ответить на свой вопрос, поэтому, чтобы сдвинуть дело с мертвой точки, существует как минимум два способа, с помощью которых TSC может узнать о ссылках: 1. Добавьте комментарий с тройной косой чертой, содержащий элемент ссылки, в начало .ts исходный файл, например: /// путь ссылки = node.d.ts / 2. Передайте параметр --reference в командной строке следующим образом: tsc --reference node.d.ts server.ts   -  person CCoder    schedule 03.10.2012
comment
Приложение, которое я написал на лету на onthefly.codeplex.com, позволяет передавать любое количество файлы в компилятор TypeScript - и вы можете создать / скомпилировать все эти файлы одновременно, одним нажатием кнопки. Я не занимаюсь рекламой или троллингом, просто позволяю как можно большему количеству людей знать, что есть небольшое приложение, которое помогает облегчить боль, поскольку автоматическая компиляция с помощью TypeScript оказалась для многих проблематичной.   -  person Arrow    schedule 26.10.2012


Ответы (6)


dir *.ts /b /s > ts-files.txt
tsc @ts-files.txt
del ts-files.txt

Это скомпилирует все *.ts файлы в рабочем каталоге и его подкаталогах. Если вы не хотите включать подкаталоги, просто удалите часть /s из первой строки.

Обратите внимание, что вы также можете добавить другие аргументы в строку tsc. Вот что я сейчас использую в одном из своих проектов:

tsc @ts-files.txt --out ..\output\deerchao.web.js --removeComments
person deerchao    schedule 08.05.2013

tsc может последовательно компилировать несколько источников, если вы просто укажете имена по порядку:

tsc foo.ts bar.ts

Вы также можете передать текстовый файл, содержащий список файлов и аргументы командной строки, из текстового файла, используя аргумент командной строки @.

tsc @compile.txt

и compile.txt может выглядеть так:

--module amd
foo.ts
bar.ts

Также обратите внимание, что если файл ссылается на другой через import, tsc автоматически выяснит это без необходимости явно указывать файл, от которого он зависит.

person Peter Olson    schedule 02.10.2012
comment
При компиляции одного файла машинописный текст выведет сгенерированный код других файлов, на которые есть ссылки. Передавая все файлы компилятору, он этого не делает. (Есть ли аргумент командной строки, чтобы предотвратить включение ссылок при компиляции одного файла?) - person Rick Love; 11.10.2012
comment
Фактически, он включает только ссылочный код при использовании параметра --out. Так есть ли способ изменить имя выходного файла без изменения поведения? - person Rick Love; 11.10.2012
comment
можем ли мы получить другое имя файла в качестве выходного файла из ввода после компиляции? если да, то как, пожалуйста, предложите какой-либо метод. Я хочу преобразовать .ts в .js файл. - person Pardeep Jain; 31.10.2015
comment
Неужели я единственный, кто считает странным, что я не могу бегать tsc *.ts? - person Michel; 28.02.2018

Если кому-то это нужно для Mac OS X:

find . -name "*.ts" -type f >ts-files.txt
/usr/local/bin/tsc @ts-files.txt --module CommonJS --out ./Deploy/ServerMain.js --removeComments
rm ts-files.txt
person Centurion    schedule 05.01.2015

С TypeScript 1.5 (бета, но скоро должна появиться финальная версия) вы можете создать файл tsconfig.json для настройки компилятора TypeScript и файлов для компиляции (среди прочего). Смотрите мой ответ там: Как посмотреть и скомпилировать все Исходники TypeScript?

person dSebastien    schedule 22.06.2015

Или просто:

find ./my/path/ -name \"*.ts\" -type f | tsc
person Matthias    schedule 14.07.2017

Если кому-то требуется предварительная трансляция нескольких файлов перед фактической компиляцией проекта, используйте отдельный tsconfig с параметром компилятора --project.

Скомпилируйте проект с учетом действительного файла конфигурации. Аргументом может быть путь к допустимому файлу конфигурации JSON или путь к каталогу, содержащему файл tsconfig.json. Подробнее см. Документацию tsconfig.json.

Одним из вариантов использования может быть необходимость использования результирующих файлов JS в аргументах командной строки для скриптов ионных приложений.

person Stefan Rein    schedule 06.12.2017
comment
он выдает error TS5042: Option 'project' cannot be mixed with source files on a command line., если вы пытаетесь использовать параметр --project или -p при указании файлов для компиляции. - person vikas; 26.01.2018