2012-10-03 34 views

Trả lời

9

Trong tệp dự án của bạn, bạn sẽ cần thay đổi mục tiêu MSBuild đang xây dựng các tệp TypeScript. Nếu bạn đang sử dụng mẫu mặc định cho "Ứng dụng HTML được xây dựng với TypeScript", hãy dỡ bỏ dự án của bạn, chỉnh sửa tệp dự án, bạn sẽ tìm thấy một mục tiêu được gọi là "BeforeBuild" đang gọi trình biên dịch tại "$ (PROGRAMFILES) \ Microsoft SDKs \ TypeScript \ 0.8.0.0 \ tsc ", thêm --module amd vào nó; lưu và tải lại dự án của bạn. lần sau bạn xây dựng, bạn sẽ thấy đối số lệnh được truyền chính xác đến trình biên dịch.

+2

Dường như họ đã thêm một tùy chọn để cấu hình này, hoặc trong TS 0.8.1 hoặc như một phần của Web Essentials. Mở Tools-> Options và xem trong Web Essentials-> TypeScript. –

+0

các tài liệu cần cải thiện thời gian lớn! – Nikos

+8

@MortenMertner - và bây giờ họ đã xóa nó một lần nữa. Sẽ không muốn làm điều này quá dễ dàng, phải không? –

8

Trên Visual Studio 2013 Update 3 + WebEssentials mới nhất, các tùy chọn hiện tại (cuối cùng) được di chuyển đúng trong ngăn tùy chọn dự án (nhấp chuột phải vào dự án -> tùy chọn -> khung xây dựng TypeScript).

+1

Có, bản cập nhật VS2013 3 bây giờ có một tab BuildScript trong thuộc tính dự án, nhưng việc kiểm tra "Kết hợp đầu ra JavaScript vào tệp" không thay đổi dòng lệnh tsc chút nào. – dthorpe

5

Becouse vấn đề này vẫn còn thực tế ngay cả đối với TS 1.0 và WebEssentials cho VS 2013 Cập nhật 3, kiểm tra giải pháp này ở đây: http://icanmakethiswork.blogspot.com/2014/02/typescript-and-requirejs-keep-it-simple.html Hoặc ngay:

1) Mở tập tin dự án.

2) tìm dòng này:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /> 

3) Chèn dòng này trước:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptModuleKind>amd</TypeScriptModuleKind> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)' == 'Release'"> 
    <TypeScriptModuleKind>amd</TypeScriptModuleKind> 
    </PropertyGroup> 
+1

Bí quyết tuyệt vời! Nếu bạn dự định sử dụng 'amd' cho cả hai' Debug' và 'Release', bạn không cần phải chỉ định một điều kiện và bạn không cần hai nhóm thuộc tính. Bạn sẽ có một phần tử được gọi là 'TypeScriptToolsVersion', bạn có thể thêm trực tiếp' TypeScriptModuleKind' sau đó, nó hoạt động tốt. Điều này thực sự tốt đẹp vì nó bây giờ là một phần của cấu hình dự án của bạn. Nó không yêu cầu thay đổi môi trường toàn cầu trên máy chủ (mà thay đổi các tập tin đích sẽ). –