Typescript: Visual Studio opsi "Tanpa Kompilasi"

Dibuat pada 11 Mar 2015  ·  29Komentar  ·  Sumber: microsoft/TypeScript

Hai,

Kami baru-baru ini mengembangkan peningkatan untuk plugin grunt-ts yang memungkinkan penargetan file proyek Visual Studio untuk jalur file input TS dan info konfigurasi TS daripada harus menggunakan src: dan opsi lainnya. https://github.com/TypeStrong/grunt-ts/pull/215

Grunt-ts bersama dengan Task Runner Explorer memungkinkan pengembang untuk menggunakan fitur yang belum didukung oleh UI konfigurasi build proyek Visual Studio TypeScript (seperti preservConstEnums).

Satu hal tentang menggunakan Task Runner Explorer adalah bahwa itu hanya dapat menghubungkan ke acara Visual Studio tertentu. Diantaranya adalah "after build" dan "before build". Setelah build berfungsi dengan baik, tetapi memiliki masalah aneh VS melakukan langkah kompilasi sendiri dari TypeScript diikuti oleh grunt-ts memanggil tsc. Ini tampaknya tidak menjadi masalah kecuali untuk kinerja (pekerjaan yang dilakukan VS untuk mengkompilasi dan mengeluarkan adalah usaha yang sia-sia dan pengembang harus menunggu lebih lama untuk hasil yang diinginkan).

Saya bertanya-tanya apa cara terbaik bagi kita untuk mematikan _only_ kompilasi / emit di Visual Studio untuk TypeScript, tetapi pertahankan yang lainnya tetap sama (layanan bahasa / penyorotan sintaks, daftar kesalahan, pembuatan C # atau VB, dll). Apakah saat ini mungkin? Jika tidak, mungkinkah?

Terima kasih!

Question

Komentar yang paling membantu

Sebagai informasi, di VS2015 RTM ada cara yang lebih mudah untuk menonaktifkan TypeScriptCompile:
Cukup tambahkan <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> ke .csproj , misalnya di <PropertyGroup> .

Semua 29 komentar

Hai, baru beberapa hari yang lalu saya mengirimkan masalah # 2252 yang agak terkait dengan ini. Saya memerlukan beberapa cara untuk memicu peristiwa pra-dan pasca-pembangunan ketika menggunakan compile-on-save untuk proyek TS yang memiliki output file tunggal (sambil tetap mempertahankan perintah VS "Build" dan "Rebuild" yang biasa, layanan bahasa, debugging, dll. .). Sebagai solusinya, saat ini saya menggunakan Task Runner Explorer dengan grunt-contrib-watch (diluncurkan menggunakan pengikatan "Solution Open") untuk melihat file yang dikompilasi untuk perubahan dan melakukan tindakan tambahan setiap kali diubah.

Namun saya tidak menemukan itu benar-benar memuaskan (saya juga perlu melakukan beberapa tindakan pra-kompilasi dan umumnya lebih suka membuat langkah-langkah yang dilakukan baik semua menggunakan Grunt atau semua dengan VS) dan mempertimbangkan untuk melakukan apa yang dijelaskan: Matikan kompilasi VS sepenuhnya dan mengimplementasikan compile-on-save kustom, build lengkap (yang mencakup menjalankan pengujian unit, dll.), peristiwa sebelum dan sesudah build dengan kombinasi grunt-contrib-watch, grunt-ts, plugin grunt tambahan, dan Penjelajah Tugas Runner .

(update: sudah diimplementasikan dan berfungsi dengan baik - ini menjalankan skrip grunt build kustom setiap kali file .ts diubah, meskipun saat ini tidak mendukung binding "Before Build" dan "After Build" TRE - untuk yang disebutkan di atas alasan).

Tampaknya cara termudah (dan paling tidak terlibat untuk pengembang plugin TS) untuk memungkinkan secara efisien jenis skenario build ini adalah dengan menyediakan opsi untuk mematikan segala bentuk kompilasi yang diprakarsai oleh Visual Studio. Saya juga akan menghargai ide tentang bagaimana melakukan itu?

Saya tidak tahu apakah ada pilihan bagus untuk Anda saat ini. Jika Anda menyetel setiap file .ts dalam proyek untuk memiliki Build Action: None di propertinya yang mungkin akan melakukan apa yang Anda inginkan tetapi cukup sulit untuk dilakukan secara manual bahkan dalam proyek berukuran sedang.

Build diturunkan berdasarkan target dalam proyek MSBuild. Jika Anda ingin menonaktifkan build skrip ketikan default, hapus referensi ke target skrip ketikan dari file Anda.

Ini akan membuat layanan bahasa Anda tidak mengumpulkan semua file dalam proyek dalam satu konteks. Saya akan mengatakan tidak apa-apa, dan pada rilis berikutnya kita harus memiliki dukungan tsconfig dan kemudian itu menjadi proyek baru Anda. Jika Anda masih ingin membuatnya berfungsi tanpa menggunakan tsconfig, dan / atau menunggu rilis berikutnya, tentukan properti <TypeScriptEnabled>true</TypeScriptEnabled> dalam file proyek Anda.

@mhegazy maksud Anda <TypeScriptEnabled>false</TypeScriptEnabled> ?

baik tergantung pada apa yang Anda inginkan :)

jika Anda ingin mematikan pemuatan konten proyek layanan bahasa, buat salah,
jika Anda ingin mengaktifkannya, lakukan. itu sudah diaktifkan dengan memasukkan target default (Microsoft.TypeScript.t target)

OK aku akan mengacaukannya. Terima kasih!

Terima kasih @mhegazy , opsi konfigurasi tampaknya berfungsi sejauh ini! (sementara masih menunjukkan kesalahan sintaks / kepatuhan dan memungkinkan debugging di IE) dan bahkan dapat diatur untuk konfigurasi solusi tertentu (saya mencoba dan sepertinya berfungsi), seperti ini:

<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
...
    <TypeScriptEnabled>false</TypeScriptEnabled>
...
</PropertyGroup>

Saya tidak begitu yakin apa yang dimaksud dengan "menonaktifkan pemuatan konten proyek layanan bahasa"? (Saya tidak terlalu paham dengan konsep VS seperti target, konteks, dll). Sejauh yang saya uji, semuanya tampak berfungsi normal dengan opsi ini (terlepas dari perilaku yang diharapkan dari tidak mengkompilasi pada build)? Dan sepertinya itu masih akan menambahkan entri <TypeScriptCompile Include=".."/> untuk file .ts yang baru ditambahkan / dibuat dalam konfigurasi proyek.

Di samping catatan, sekarang dengan semua yang dilakukan melalui Grunt, entah bagaimana saya harus menemukan cara untuk menangani tabrakan antara build yang dipicu oleh arloji-arloji dan peristiwa terikat "Before Build" / "After Build" saat meminta VS Build (F6) dan Rebuild , karena VS otomatis disimpan sebelum build dimulai, yang mengarah ke dua instance Grunt berbeda yang berjalan secara paralel.

Saya tidak bisa mendapatkan <TypeScriptEnabled>false</TypeScriptEnabled> untuk bekerja (VS 2013 Update 4 dengan TypeScript 1.4), tetapi menghapus file target TypeScript dari proyek memang menonaktifkan kompilasi pada proyek Build.

Berikut langkah-langkah lengkap yang diperlukan untuk menonaktifkan kompilasi TypeScript di VS (meskipun layanan bahasa masih berfungsi, tetap refactoring senang, dll.):

  • Hapus referensi ke file ".target" TypeScript dari file proyek.
  • Nonaktifkan "Secara otomatis mengkompilasi file TypeScript yang bukan merupakan bagian dari proyek" dalam opsi Visual Studio TypeScript.

Langkah kedua adalah semacam bug (atau setidaknya dialog tidak diberi label secara akurat); Meskipun file TypeScript Anda adalah "bagian" dari sebuah proyek, jika Anda menonaktifkan file target, Visual Studio 2013 akan memperlakukan mereka seolah-olah mereka _not_ bagian dari proyek dan melakukan kompilasi saat simpan (jika opsi global tidak ditetapkan). Saya tidak bisa mendapatkan <TypeScriptEnabled/> untuk melakukan apa pun.

Terima kasih @mhegazy - akan luar biasa jika ini bisa menjadi bagian dari dialog opsi TypeScript, tetapi setidaknya cukup mudah untuk mendukung melalui pengeditan proyek.

satu hal yang rumit, adalah <TypeScriptEnabled>false</TypeScriptEnabled> harus berada di akhir file Anda khususnya setelah impor ke target. seperti yang ditetapkan target, dan Anda ingin menggantinya.

satu hal yang rumit, adalahSalah harus berada di akhir file Anda khususnya setelah impor ke target. seperti yang ditetapkan target, dan Anda ingin menggantinya.

Anda benar! Ini triknya.

Saya pikir ini menyelesaikan masalah. Terima kasih, @mhegazy .

Hai @mhegazy - maaf merepotkan Anda. Apakah Anda yakin bahwa <TypeScriptEnabled>false</TypeScriptEnabled> berfungsi pada VS 2013 dengan TypeScript 1.4 diinstal? Saya baru saja memutakhirkan PC saya saat ini dari VS 2013 dengan TS 1.3 (langsung VS 2013 Pembaruan 4) ke VS 2013 dengan TS 1.4, dan sekarang Visual Studio mencoba membangun TypeScript lagi "pada pembuatan" (artinya kesalahan yang muncul memiliki "Bangun : "di depan mereka), meskipun lima baris terakhir proyek saya adalah sebagai berikut:

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

Itu berfungsi dengan benar pada mesin ini sebelumnya hari ini (ketika saya menutup tiket ini), tetapi sekarang saya meletakkan 1,4 di sini, Build dari VS memberi saya kesalahan. Mengomentari referensi ke file target (dan menonaktifkan "kompilasi saat simpan" untuk TypeScript yang tidak ada dalam proyek) tetap menonaktifkannya.

Saya memiliki 1,4 di rumah dan saya tidak bisa mendapatkan <TypeScriptEnabled>false</TypeScriptEnabled> untuk bekerja sama sekali di sana - Saya ingin tahu apakah ada regresi pada opsi build ini?

<TypeScriptEnabled>false</TypeScriptEnabled> tidak ada hubungannya dengan build. itu semua tentang Layanan Bahasa yang memperlakukan file Anda sebagai bagian dari proyek atau tidak.

jika Anda tidak ingin membangun di F5, hapus referensi ke target.

Itulah jawaban singkatnya, berikut ini versi panjangnya:

File proyek digunakan untuk dua hal:

  1. build, ini adalah dukungan MSBuild normal Anda, di mana target memanggil tugas, dan sistem menemukan input, mencocokkan target, dan menjalankannya secara berurutan. jadi semua yang dilakukannya adalah mengumpulkan semua item TypeScriptCompile dalam proyek, meneruskannya ke tsc.exe bersama dengan beberapa opsi.
    Selain itu, halaman properti Proyek berasal dari file proyek Anda, dan hanya UI di atas properti MSBuild.
  2. layanan bahasa, ini penyelesaian Anda, bantuan tanda tangan, kesalahan dalam VS, kompilasi saat simpan .. dll .. kami ingin ini bekerja dengan cara yang sama dengan cara kerja build normal Anda, jadi kami mencari properti yang sama yang Anda tetapkan untuk build, dan menjalankan Perilaku LS. misalnya jika target Anda disetel ke ES3 dalam file proyek Anda ( <TypeScriptTarget>ES3</TypeScriptTarget> ), layanan bahasa Anda akan memberi Anda coretan merah jika Anda mendefinisikan get / set di kelas.
    Ini memungkinkan Anda menggunakan satu set opsi untuk perilaku waktu build dan desain.
    Agar ini bekerja, target memberi tahu layanan bahasa bahwa ia mengetahui tentang skrip ketikan dengan menentukan properti <TypeScriptEnabled>true</TypeScriptEnabled> .

Jika Anda tidak ingin membangun VS berfungsi, cukup hapus target. ini akan menonaktifkan build, tetapi juga akan memberi tahu LS bahwa proyek ini bukan proyek TypeScript. dan itu akan memperlakukan semua file sebagai "file longgar". jika ini tidak masalah bagi Anda, maka tidak diperlukan lagi pekerjaan. jika Anda ingin mengubahnya dan membuatnya tetap menggunakan properti dari file proyek Anda, dan tidak menyertakan file lain yang dibuka di proyek Anda, dll .. kemudian tambahkan <TypeScriptEnabled>true</TypeScriptEnabled> ke file Anda, dan LS akan memperlakukannya dengan semestinya .

Jika Anda ingin build berfungsi di VS, tetapi LS tidak memperlakukannya sebagai proyek, setel flag ke false.

Terima kasih. Ini adalah informasi yang bagus dan semuanya tampaknya bekerja secara konsisten dengan apa yang Anda jelaskan. Jika saya telah menghapus file .t target, tetapi menyetel TypeScriptEnabled menjadi true, apakah tab TypeScript Build diharapkan menghilang dari properti proyek?

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

Jika demikian, ini tampak aneh karena itu berarti tidak akan ada cara untuk mengontrol pengaturan yang dapat diakses di UI tanpa mengaktifkan kembali target dan kemudian menggunakan UI (atau lebih realistis hanya mengedit pengaturan proyek TS langsung pada saat itu sejak kamu tetap di sana).

Alasan saya menanyakan semua ini adalah karena saya menulis perpustakaan npm beberapa minggu yang lalu untuk membaca properti build TypeScript dari .csproj dan .vbproj (https://www.npmjs.com/package/csproj2ts) yang saya sedang mengintegrasikan ke grunt-ts. Jika sudah siap, akan ada cara mudah untuk "menjalankan tsc terhadap file .csproj" secara efektif (seperti yang diminta di sini: https://github.com/Microsoft/TypeScript/issues/1702). Saya ingin dapat memberi tahu orang-orang cara terbaik untuk menyiapkan proyek mereka untuk menggunakan layanan bahasa VS TypeScript untuk pengalaman pengkodean mereka, tetapi sepenuhnya menggunakan grunt-ts untuk membangun. Saya berharap bahwa memungkinkan orang menggunakan UI untuk mengonfigurasi properti TypeScript dalam skenario ini, tetapi mungkin tidak.

Apakah Anda mengetahui cara agar tab TypeScript Build muncul dengan file .target TypeScript dinonaktifkan?

Selain itu, tampaknya bahkan jika saya melakukan sesuatu seperti ini: <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition=" '$(Configuration)' == 'Debug' " /> , saya harus menyetel konfigurasi proyek ke Debug dan kemudian memuat ulang agar tab TypeScript Build muncul.

Maaf, @mhegazy - Aku berjanji tidak akan

apakah tab TypeScript Build diharapkan menghilang dari properti proyek?

ya, halaman properti terhubung ke target, jadi menghapusnya menghapus UI, Anda harus mengedit file secara manual

Alasan saya menanyakan semua ini adalah karena saya menulis perpustakaan npm beberapa minggu yang lalu untuk membaca properti build TypeScript dari .csproj dan .vbproj (https://www.npmjs.com/package/csproj2ts) yang saya sedang mengintegrasikan ke grunt-ts.

Skenario yang Anda coba capai dapat dilakukan, tetapi akan memiliki beberapa sisi kasar, dan Anda perlu meretas beberapa tempat untuk membuatnya berfungsi. @paulvanbrenk saat ini menambahkan dukungan untuk tsconfig di VS, ini memungkinkan halaman properti proyek untuk menggunakan file tsconfig jika file itu ada di sana. Kami juga bekerja untuk mengintegrasikan lebih baik dalam proyek ASP.net 5 , yang saya yakin akan melakukan semua yang Anda inginkan, yaitu 1. dukungan grubt / bower, 2. tampilan berbasis sistem file, 3. menggunakan tsconfig untuk mengelola properti proyek, dan 4. interaksi sederhana dengan editor / IDE lain. Saya yakin ini akan bekerja dengan baik dengan skenario yang Anda gambarkan dan Anda tidak perlu meretas jalan keluarnya. ini akan datang di rilis berikutnya, jadi perlu menunggu :)

Juga, sepertinya saya melakukan sesuatu seperti ini: , Saya harus menyetel konfigurasi proyek ke Debug dan kemudian memuat ulang agar tab TypeScript Build muncul.

Impor dimuat saat proyek dimuat. jadi dalam impor ini Anda mengatakan hanya memuat di 'Konfigurasi' 'Debug', mengubah konfigurasi tidak memaksa muat ulang.

Maaf, @mhegazy - Aku berjanji tidak akan
: D jangan khawatir. selalu senang mendapatkan umpan balik, dan berharap itu membantu.

BAIK. Sungguh, terima kasih atas informasi yang sangat baik dan diskusi yang menyeluruh.

Hanya untuk membuangnya ke @paulvanbrenk - akan luar biasa memiliki semacam cara bahkan di masa depan dengan tsconfig memiliki kemampuan untuk menonaktifkan VisualStudio TypeScript build (artinya CTRL + SHIFT + B membangun C # Anda dan lain-lain, tetapi bukan TypeScript) dan menggunakan kompiler TypeScript eksternal sambil membiarkan kemampuan untuk mengatur opsi TypeScript melalui GUI. Ada banyak alasan mengapa menggunakan alat kompilasi eksternal bisa sangat membantu dan saat ini rasanya seperti ini benar-benar hanya didukung secara tidak sengaja dan dengan beberapa sisi kasar.

Ide tsconfig memang luar biasa, tetapi tidak terlalu membantu dengan:

  • Menggunakan TypeScript versi lama
  • Menggunakan versi TypeScript yang berbeda pada proyek yang berbeda di komputer yang sama
  • Menggunakan TypeScript versi eksperimental (seperti versi @fdecampredon yang mendukung JSX)
  • Menggunakan alat build seperti grunt-ts yang mengotomatiskan manajemen referensi dan melakukan tugas lain yang tidak didukung TypeScript
  • Dll

Mengizinkan pengguna Visual Studio untuk memilih sistem kompiler TypeScript yang dikembangkan komunitas sambil tetap menjaga UI yang bagus di dalam Visual Studio akan luar biasa (terutama dengan add-on Task Runner Explorer yang bagus). Saya harap Anda akan mempertimbangkan manfaat signifikan bagi komunitas ini akan memungkinkan terhadap waktu yang Anda perlukan untuk membuat kode kotak centang yang bertuliskan "Nonaktifkan TypeScript Build".

Saya harap Anda akan mempertimbangkan manfaat signifikan bagi komunitas ini akan memungkinkan terhadap waktu yang Anda perlukan untuk membuat kode kotak centang yang bertuliskan "Nonaktifkan TypeScript Build".

Ini adalah bagian dimana saya menjadi bingung. bagi saya ini menghapus referensi target skrip, lalu menggantinya dengan target kasar Anda yang akan membangun sesuatu secara berbeda. rasanya aneh bagi saya untuk menyertakan file .t target dengan kondisi yang menyuruhnya untuk tidak melakukan apa-apa; mengapa menyertakannya di tempat pertama? Saya akan dengan senang hati membantu membuat file .t target yang menggantikan target skrip standar, yang ini akan menyertakan tag <TypeScriptEnabled>true</TypeScriptEnabled> dan akan melihat VS seolah-olah itu adalah default, tetapi akan menangani build secara berbeda.

Hah. Saya seharusnya memikirkan itu - saya pikir saya telah memperlakukan file .t target sebagai hal yang tidak dapat diubah ini, tetapi tentu saja ini masuk akal. Saya akan memeriksa format file target dan menghubungi Anda kembali.

cara mudah untuk memulai adalah dengan menyalin file target Microsoft.TypeScript.Target, menghapus hal-hal yang tidak Anda pedulikan, misalnya memanggil tsc, dan menambahkan tugas untuk memanggil grunt, dan menyambungkan konfigurasi, dll. kemudian memasukkannya ke dalam proyek Anda.

Hebat! Saya telah mendapatkan semuanya bekerja dari perspektif minimalis dengan mengatur file .csproj saya dengan 4 baris berikut.

  <Import Project="$(ProjectDir)\custom.TypeScript.targets" />
  <PropertyGroup>
    <TypeScriptEnabled>true</TypeScriptEnabled>
  </PropertyGroup>

Dan file custom.TypeScript.t target minimalis adalah ini:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <VsToolsPath Condition="'$(VsToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VsToolsPath>
  </PropertyGroup>
  <UsingTask TaskName="TypeScript.Tasks.VsTsc" AssemblyFile="$(VSToolsPath)\TypeScript\TypeScript.tasks.dll" />
  <PropertyGroup>
    <CfgPropertyPagesGuidsAddCSharp>{d4683cae-88c4-4b85-863d-ac8014f3ba36}</CfgPropertyPagesGuidsAddCSharp>
    <CfgPropertyPagesGuidsAddVB>{d4683cae-88c4-4b85-863d-ac8014f3ba36}</CfgPropertyPagesGuidsAddVB>
    <CfgPropertyPagesGuidsAddTypeScript>{d4683cae-88c4-4b85-863d-ac8014f3ba36}</CfgPropertyPagesGuidsAddTypeScript>
  </PropertyGroup>
  <ItemGroup>
    <ProjectCapability Include="TypeScript" />
  </ItemGroup>
</Project>

Saya mencoba meletakkan tag <TypeScriptEnabled /> di file target, tetapi tidak berhasil (VS memperlakukan file .ts sebagai longgar). Tahu mengapa demikian? (Saya yakin untuk seseorang yang tahu MSBuild ini jelas - mungkin semacam masalah cakupan?).

Saya pikir ini menyelesaikan masalah saya pada saat ini. Saya dapat menjalankan tugas Grunt saya menggunakan ekstensi Task Runner Explorer yang dapat memulai tugas Grunt atau Gulp ketika VS Build dipicu. Build sekarang selalu ditampilkan sebagai berhasil terlepas dari hasil kompilasi TypeScript, tetapi ini baik-baik saja karena pengguna dapat melihat output dari grunt-ts di jendela TRX. Panel "TypeScript Build" muncul di jendela properti proyek. Kompilasi saat menyimpan berfungsi jika opsi itu dipilih. Build masih ditampilkan sebagai gagal jika kode C # atau VB tidak berhasil dikompilasi (hal yang baik). Setup untuk sampai di sini dari Visual Studio default "Aplikasi HTML dengan TypeScript" atau proyek web ASP.NET cukup mudah.

Dapatkah Anda melihat masalah dengan kami mendistribusikan file .t Target minimalis di atas dengan grunt-ts? Itu berarti kita hanya perlu memberi tahu orang-orang untuk memperbarui baris target proyek mereka menjadi <Import Project="$(ProjectDir)\node_modules\grunt-ts\custom.TypeScript.targets" /> dan menetapkan <TypeScriptEnabled> .

Terima kasih lagi!!

Saya mencoba meletakkan tag di file target, tetapi tidak berfungsi (VS memperlakukan file .ts sebagai longgar). Tahu mengapa demikian? (Saya yakin untuk seseorang yang tahu MSBuild ini jelas - mungkin semacam masalah cakupan?).

ini aneh. ini adalah cara kami memasukkannya ke dalam target kami, dan berfungsi dengan baik. Apakah Anda termasuk target lain yang memiliki properti? kondisi apapun? saya mencobanya di proyek ts baru, menghapus Microsoft.TypeScript.t target, dan meletakkan milik Anda, dan menambahkanbenar dan itu berhasil.

Dapatkah Anda melihat masalah dengan kami mendistribusikan file .t Target minimalis di atas dengan grunt-ts? Itu berarti kami hanya perlu memberi tahu orang-orang untuk memperbarui baris target proyek mereka menjadi dan set.

Saya pikir ini adalah cara yang benar untuk pergi. saya hanya akan mencoba untuk mendapatkan TypeScriptEnabled di sana juga. beri tahu saya bagaimana saya dapat membantu mendiagnosis masalah

beberapa catatan, Anda tidak memerlukan referensi task.dll atau definisi VsToolsPath, kecuali jika Anda membutuhkannya untuk hal lain.

Saya melihat perilaku yang Anda prediksi di komputer rumah saya. Ini juga bekerja tanpa referensi ke DLL. Saya pasti telah melakukan kesalahan sebelumnya, jadi saya akan mencobanya lagi besok. Saya pikir ini sangat bagus! Terima kasih, Mohamed. Ini harus dirilis sebagai bagian dari grunt-ts dalam beberapa hari ke depan.

satu hal yang mungkin menyebabkan ini adalah file target hanya dimuat sekali dalam VS, jadi jika Anda mengedit target, perubahan tidak akan terlihat dalam proyek Anda sampai Anda memulai ulang VS.

Bisa jadi itu; Saya baru saja membongkar / memuat ulang proyek. Mungkin saja saya memulai ulang VS di rumah. Saya akan mencatatnya di dokumen.

@mhegazy Terima kasih atas semua bantuan Anda. Kami telah merilis grunt-ts 4.0.0 yang berisi fitur "kompilasi dari Visual Studio Project":

https://github.com/TypeStrong/grunt-ts#vs

Instruksi untuk menonaktifkan VS build:

https://github.com/TypeStrong/grunt-ts/blob/master/docs/DisableVisualStudioBuild.md

Sangat keren! Saya suka skenario yang memungkinkan.

Terima kasih, Ryan. Saya cukup senang dengan hasilnya. Ketika tsconfig muncul, itu mungkin kurang diperlukan, tetapi ini akan menjembatani kesenjangan sampai saat itu dan tentu saja itu kompatibel dengan versi compiler TypeScript sebelum 1.5.

PS: Ada dua laporan bug hari ini, jadi kita harus mendorong 4.0.1 malam ini dengan asumsi saya bisa memperbaikinya.

Sebagai informasi, di VS2015 RTM ada cara yang lebih mudah untuk menonaktifkan TypeScriptCompile:
Cukup tambahkan <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked> ke .csproj , misalnya di <PropertyGroup> .

Terima kasih.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

jbondc picture jbondc  ·  3Komentar

uber5001 picture uber5001  ·  3Komentar

bgrieder picture bgrieder  ·  3Komentar

seanzer picture seanzer  ·  3Komentar

manekinekko picture manekinekko  ·  3Komentar