2012-10-02 25 views
35

TypeScript được thiết kế cho các dự án JavaScripty quy mô lớn, thường bao gồm nhiều tệp được sản xuất nội bộ cùng với các thư viện được sản xuất bên ngoài. Trình biên dịch TypeScript (tsc) mong đợi bạn cung cấp nó như thế nào với tập hợp đầy đủ các tệp tạo nên một dự án?Làm cách nào để chuyển nhiều tệp nguồn tới trình biên dịch TypeScript?

+1

Không thể trả lời câu hỏi của riêng tôi, do đó, để có được quả bóng lăn, có ít nhất hai cách mà TSC có thể nhận thức được tham chiếu: 1. Thêm nhận xét ba dấu gạch chéo chứa phần tử tham chiếu vào đầu của a.tập tin ts nguồn như thế này: /// < tham khảo path = "node.d.ts"/> 2. Vượt qua "--reference" tùy chọn trên dòng lệnh như thế này: tsc --reference nút .d.ts server.ts – CCoder

+0

Một ứng dụng mà tôi đã viết On the Fly, tại http://onthefly.codeplex.com/ cho phép bạn chuyển bất kỳ số lượng tệp nào vào trình biên dịch TypeScript - và bạn có thể xây dựng/biên dịch tất cả những tệp này cùng một lúc, chỉ bằng một cú nhấp chuột. Tôi không "quảng cáo" hoặc "trolling" chỉ cho phép càng nhiều người càng tốt biết có một ứng dụng nhỏ giúp giảm đau, vì việc biên dịch tự động với TypeScript đã được chứng minh là có vấn đề đối với nhiều người. – Arrow

Trả lời

24

tsc có thể biên dịch nhiều nguồn khác nhau theo thứ tự nếu bạn chỉ cần cung cấp tên theo thứ tự:

tsc foo.ts bar.ts 

Bạn cũng có thể vượt qua một tập tin văn bản có chứa một danh sách các tập tin và đối số dòng lệnh từ một tập tin văn bản bằng cách sử dụng @ đối số dòng lệnh.

tsc @compile.txt 

compile.txt có thể trông như thế này:

--module amd 
foo.ts 
bar.ts 

Cũng lưu ý rằng nếu trên tài liệu tham khảo tập tin khác thông qua một import, tsc sẽ tự động hiểu rằng con số mà không cần phải rõ ràng danh sách các tệp phụ thuộc vào.

+1

Khi biên dịch một tệp duy nhất, loại bản ghi sẽ xuất mã được tạo ra của các tệp được tham chiếu khác. Bằng cách chuyển tất cả các tệp đến trình biên dịch, nó không làm điều này. (Có một đối số dòng lệnh để ngăn không cho nó bao gồm các tham chiếu khi biên dịch một tệp không?) –

+3

Thực ra, nó chỉ bao gồm mã tham chiếu khi sử dụng tham số --out. Vì vậy, có một cách để thay đổi tên tập tin đầu ra mà không thay đổi hành vi? –

+0

chúng ta có thể lấy tên tệp tin khác như tệp đầu ra từ đầu vào sau khi biên dịch không? nếu có thì làm thế nào xin vui lòng đề nghị bất kỳ phương pháp. tôi muốn chuyển đổi .ts sang tập tin .js. –

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

Điều này sẽ biên dịch tất cả các tệp *.ts trong thư mục làm việc và thư mục con của nó. Nếu bạn không muốn bao gồm các thư mục con, chỉ cần xóa phần /s khỏi dòng đầu tiên.

Lưu ý rằng bạn cũng có thể thêm đối số khác vào dòng tsc. Dưới đây là những gì tôi đang sử dụng ngay bây giờ cho một trong những dự án của tôi:

tsc @ts-files.txt --out ..\output/deerchao.web.js --removeComments 
+0

Tôi đã thử điều này và tôi không thể làm cho nó hoạt động. Bất kỳ ý tưởng? https://stackoverflow.com/questions/25199866/error-when-compiling-multiple-typescript-files – homaxto

+1

Hoạt động tốt. Tôi chạy giải pháp đó và có vấn đề tiếp theo: "lỗi TS5037: Không thể biên dịch mô-đun bên ngoài trừ khi cờ '--module' được cung cấp." Điều đó dễ dàng được sửa chỉ cần thêm mô-đun như thế này: tsc @ ts-files.txt --module "commonjs" – Aebsubis

2

Trong trường hợp bất cứ ai cần này dành cho 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 
1

Với nguyên cảo 1.5 (beta nhưng phiên bản cuối cùng nên có mặt ở đó sớm), bạn có thể tạo tệp tsconfig.json để định cấu hình trình biên dịch TypeScript và các tệp cần biên dịch (trong số các thứ khác). Xem câu trả lời của tôi ở đằng kia: How to watch and compile all TypeScript sources?

0

Hoặc đơn giản là:

find ./my/path/ -name \"*.ts\" -type f | tsc 
0

Nếu ai đó cần nhiều file pretranspiled trước khi biên dịch dự án thực tế, sử dụng một tsconfig riêng với các tùy chọn biên dịch --project.

Biên dịch dự án được cung cấp tệp cấu hình hợp lệ. Đối số có thể là đường dẫn tệp đến tệp cấu hình JSON hợp lệ hoặc đường dẫn thư mục vào thư mục chứa tệp tsconfig.json. Xem tài liệu tsconfig.json để biết thêm chi tiết.

Một trường hợp sử dụng sẽ là nhu cầu của các tệp JS kết quả được sử dụng sau đó trong các đối số dòng lệnh cho tập lệnh ứng dụng ionic.

+0

nó ném 'lỗi TS5042: Tùy chọn 'dự án' không thể được trộn lẫn với tệp nguồn trên dòng lệnh.' nếu bạn cố gắng sử dụng tùy chọn --project hoặc -p khi chỉ định tệp để biên dịch. – vikas

Các vấn đề liên quan