Saya cukup baru mengenal TypeScript, dan saat ini saya memiliki file .ts di beberapa tempat melalui memikirkan struktur proyek saya:
app/
|-scripts/
|-app.ts
|
|-classes/
| |-classA.ts
| |-classB.ts
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
|
|-otherStuff/
|-otherstuffA.ts
Saat ini, ketika file saya dikompilasi, mereka dikompilasi ke direktori yang sama dengan file .ts:
app/
|-scripts/
|-app.ts
|-app.js
|
|-classes/
| |-classA.ts
| |-classB.ts
| |-classA.js
| |-classB.js
|
|-controllers/
| |-controllerA.ts
| |-controllerB.ts
| |-controllerA.js
| |-controllerB.js
|
|-otherStuff/
|-otherstuffA.ts
|-otherStuffA.js
Meskipun saya menyukai cara file .js mempertahankan struktur direktori yang sama dengan file .ts, saya tidak ingin melacak file .js di VCS saya, jadi saya ingin menyimpan semua file JavaScript saya di pohon direktori terpisah (yang kemudian dapat saya tambahkan ke .gitignore), seperti ini:
app/
|-scripts/
| |-app.ts
| |
| |-classes/
| | |-classA.ts
| | |-classB.ts
| |
| |-controllers/
| | |-controllerA.ts
| | |-controllerB.ts
| |
| |-otherStuff/
| |-otherstuffA.ts
|
|-js/
|-app.js
|
|-classes/
| |-classA.js
| |-classB.js
|
|-controllers/
| |-controllerA.js
| |-controllerB.js
|
|-otherStuff/
|-otherstuffA.js
Apakah ada pengaturan atau opsi di suatu tempat yang akan memberi tahu compiler TypeScript untuk melakukan ini? Juga, saya tidak yakin apakah itu relevan, tetapi saya menggunakan WebStorm.
javascript
typescript
tsc
TheGuyWithTheFace
sumber
sumber
Jawaban:
Gunakan opsi
--outDir
di tsc (dikonfigurasi dalam Pengamat File di IntelliJ)Dari dokumentasi baris perintah
--outDir DIRECTORY Redirect output structure to the directory.
Sunting
Sejak Typecript 1.5, ini juga dapat disetel di
tsconfig.json
file:sumber
--rootDir
flag untuk meneruskan folder root yang sama ke transpiler. Ini menghindarinya menemukan folder root yang sama.Atau, tambahkan
"outDir": "build"
ke file tsconfig.jsonsumber
"outDir": "build"
masuk ke dalam"compilerOptions"
objek tsconfig.json Anda, bukan sebagai properti tingkat atas.Meskipun jawaban ini benar, Anda harus mempertimbangkan apakah Anda sebenarnya hanya ingin menyembunyikan file .js dari IDE Anda .
Dalam Visual Studio Code, buka
File > Preferences > Settings
atau.vscode\settings.json
file Anda dan masukkan:Di atas menyembunyikan file .js di mana file .ts yang sesuai ada.
sumber
__dirname
. (Misalnya.graphql
file skema)Jika Anda ingin memetakan struktur direktori dari folder app / scripts di js, saya sarankan menggunakan pengaturan berikut untuk pengamat file Anda:
sumber
Pengguna Intellij, kompilasi Typecript ke beberapa direktori keluaran
Bagi pengguna Intellij ini semoga bermanfaat. Ini adalah bagaimana saya membuat ini bekerja menggunakan Compiler Typecript bawaan.
Info Lingkungan
Contoh Struktur Direktori
Penyiapan Intellij
C:\yourUserName\AppData\Roaming\npm\node_modules\typescript\lib
-m amd -t ES6 -outDir E:\myapp\js
E:\myapp\ts\main.ts
Jika ini tidak dicentang maka semua file Anda akan mencoba untuk dikeluarkan ke jalur outDir Anda.sumber
Saya mengatur package.json seperti ini sehingga mengetik
npm run start
menghasilkan semuanyabuild
. File sumber disimpan disrc
. Outfile ditentukan oleh--outDir build
.Anda dapat mengecualikan direktori build Anda di tsconfig.json, meskipun itu mungkin tidak diperlukan, karena hanya ada JS di sana:
sumber
Saya menggunakan Atom dengan ekstensi atom-typescript dan tsconfig.json saya terlihat seperti ini:
sumber
Mengenai Grunt, saat ini untuk menyimpan struktur proyek folder dev Anda dalam produksi dan tidak mendapatkan hasil yang tidak diharapkan setelah file dikompilasi, lihat opsi:
Lihat opsi rootDir di dokumen resmi grunt-ts.
Saya berharap ini akan membantu seseorang jika mereka terjebak dan mendapatkan hasil yang aneh dalam produksi.
sumber