Setelah saya mengupgrade TS ke v3.4.2, waktu kompilasi menjadi sangat lambat. Dengan TS v3.3 proyek saya dibangun di ~ 20s dan dengan TS v3.4 dibutuhkan ~ 5mn.
Saya mencoba dengan clean: true
, saya mencoba menambahkan typescript: require('typescript')
, saya mencoba memutakhirkan rollup
dan semua plugin terkait .. Setiap kali, kompilasi hasil yang sama membutuhkan banyak waktu .
Catatan: ketika saya menjalankan tsc -p tsconfig.prod.json
secara langsung, dibutuhkan kurang dari 10 detik untuk mengeluarkan dist.
{
input: 'src/index.ts',
output: [
{ file: pkg.main, format: 'cjs' },
{ file: pkg.module, format: 'es' },
],
plugins: [
external({ includeDependencies: true }),
resolve(),
typescript({
tsconfig: './tsconfig.prod.json',
rollupCommonJSResolveHack: true,
}),
commonjs(),
filesize(),
],
}
tsconfig.json
{
"compilerOptions": {
"module": "esnext",
"target": "es5",
"jsx": "react",
"esModuleInterop": true,
"lib": ["dom", "es2017"],
"moduleResolution": "node",
"rootDir": "src",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": false,
"downlevelIteration": true
},
"include": ["src/**/*", "types/**/*"]
}
tsconfig.prod.json
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
"noUnusedLocals": true,
"sourceMap": true,
"declaration": true
},
"exclude": ["src/doc", "**/stories.tsx", "**/test.tsx", "**/fixture.ts"]
}
"rollup": "^1.6.0",
"rollup-plugin-commonjs": "^9.2.1",
"rollup-plugin-filesize": "^6.0.1",
"rollup-plugin-node-resolve": "^4.0.1",
"rollup-plugin-peer-deps-external": "^2.2.0",
"rollup-plugin-typescript2": "^0.19.2",
"typescript": "^3.4.2"
Keluaran
rpt2: typescript version: 3.4.2
rpt2: tslib version: 1.9.3
rpt2: rollup-plugin-typescript2 version: 0.19.2
rpt2: plugin options:
{
"tsconfig": "./tsconfig.prod.json",
"rollupCommonJSResolveHack": true,
"clean": true,
"verbosity": 3,
"typescript": "version 3.4.2",
"check": true,
"cacheRoot": "/Users/yannpringault/git/PayFit/components/.rpt2_cache",
"include": [
"*.ts+(|x)",
"**/*.ts+(|x)"
],
"exclude": [
"*.d.ts",
"**/*.d.ts"
],
"abortOnError": true,
"useTsconfigDeclarationDir": false,
"tsconfigOverride": {},
"transformers": [],
"tsconfigDefaults": {},
"objectHashIgnoreUnknownHack": false
}
rpt2: rollup config:
{
"chunkGroupingSize": 5000,
"experimentalCacheExpiry": 10,
"inlineDynamicImports": false,
"input": "src/index.ts",
"perf": false,
"plugins": [
{
"name": "peer-deps-external"
},
{
"name": "node-resolve"
},
{
"name": "rpt2"
},
{
"name": "commonjs"
},
{
"name": "filesize"
}
]
}
rpt2: built-in options overrides: {
"noEmitHelpers": false,
"importHelpers": true,
"noResolve": false,
"noEmit": false,
"inlineSourceMap": false,
"outDir": "/Users/yannpringault/git/PayFit/components/.rpt2_cache/placeholder",
"moduleResolution": 2,
"allowNonTsExtensions": true,
"declarationDir": "/Users/yannpringault/git/PayFit/components"
}
rpt2: parsed tsconfig: {
"options": {
"module": 6,
"target": 1,
"jsx": 2,
"esModuleInterop": true,
"lib": [
"lib.dom.d.ts",
"lib.es2017.d.ts"
],
"moduleResolution": 2,
"rootDir": "/Users/yannpringault/git/PayFit/components/src",
"forceConsistentCasingInFileNames": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": true,
"noUnusedLocals": true,
"downlevelIteration": true,
"outDir": "/Users/yannpringault/git/PayFit/components/.rpt2_cache/placeholder",
"sourceMap": true,
"declaration": true,
"configFilePath": "/Users/yannpringault/git/PayFit/components/./tsconfig.prod.json",
"noEmitHelpers": false,
"importHelpers": true,
"noResolve": false,
"noEmit": false,
"inlineSourceMap": false,
"allowNonTsExtensions": true,
"declarationDir": "/Users/yannpringault/git/PayFit/components"
},
"fileNames": [
"/Users/yannpringault/git/PayFit/components/src/index.ts",
"/Users/yannpringault/git/PayFit/components/src/components/index.ts",
"/Users/yannpringault/git/PayFit/components/src/components/Alert/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Alert/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Avatar/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Avatar/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/AvatarGroup/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/AvatarGroup/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Badge/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Badge/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Button/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Button/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Checkbox/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Checkbox/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/CheckboxGroup/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/CheckboxGroup/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/DatePicker/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/DatePicker/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/DatePicker/Popin/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Dropdown/MenuContext.ts",
"/Users/yannpringault/git/PayFit/components/src/components/Dropdown/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Dropdown/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Dropdown/DropdownItem/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Dropdown/DropdownItem/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Field/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Field/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Icon/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Icon/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Input/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Input/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Layout/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Legend/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Legend/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Loader/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Loader/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/ProgressBar/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/ProgressBar/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/ProgressCircle/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/ProgressCircle/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/RadioGroup/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/RadioGroup/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Select/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Select/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Steps/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Steps/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/Body.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/Cell.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/Footer.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/Header.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/HeaderCell.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/HeaderRow.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/Limit.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Table/components/Row.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/TableGroup/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/TableGroup/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Tag/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Tag/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Text/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Toggle/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Toggle/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Tooltip/index.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/Tooltip/style.tsx",
"/Users/yannpringault/git/PayFit/components/src/components/_helpers/colors.test.ts",
"/Users/yannpringault/git/PayFit/components/src/components/_helpers/colors.ts",
"/Users/yannpringault/git/PayFit/components/src/components/_helpers/react.ts",
"/Users/yannpringault/git/PayFit/components/src/components/_helpers/string.test.ts",
"/Users/yannpringault/git/PayFit/components/src/components/_helpers/string.ts",
"/Users/yannpringault/git/PayFit/components/src/primitives/_helpers.tsx",
"/Users/yannpringault/git/PayFit/components/src/primitives/box.tsx",
"/Users/yannpringault/git/PayFit/components/src/primitives/text.tsx",
"/Users/yannpringault/git/PayFit/components/src/utils/index.ts",
"/Users/yannpringault/git/PayFit/components/src/utils/colors/index.ts",
"/Users/yannpringault/git/PayFit/components/src/utils/shadows/index.ts",
"/Users/yannpringault/git/PayFit/components/src/utils/shadows/test.ts",
"/Users/yannpringault/git/PayFit/components/src/utils/zIndex/index.ts",
"/Users/yannpringault/git/PayFit/components/types/index.d.ts",
"/Users/yannpringault/git/PayFit/components/types/modules.d.ts"
],
"typeAcquisition": {
"enable": false,
"include": [],
"exclude": []
},
"raw": {
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./dist",
"noUnusedLocals": true,
"sourceMap": true,
"declaration": true
},
"exclude": [
"src/doc",
"**/stories.tsx",
"**/test.tsx",
"**/fixture.ts"
],
"compileOnSave": false,
"include": [
"src/**/*",
"types/**/*"
]
},
"errors": [],
"wildcardDirectories": {
"/users/yannpringault/git/payfit/components/src": 1,
"/users/yannpringault/git/payfit/components/types": 1
},
"compileOnSave": false,
"configFileSpecs": {
"includeSpecs": [
"src/**/*",
"types/**/*"
],
"excludeSpecs": [
"src/doc",
"**/stories.tsx",
"**/test.tsx",
"**/fixture.ts"
],
"validatedIncludeSpecs": [
"src/**/*",
"types/**/*"
],
"validatedExcludeSpecs": [
"src/doc",
"**/stories.tsx",
"**/test.tsx",
"**/fixture.ts"
],
"wildcardDirectories": {
"/users/yannpringault/git/payfit/components/src": 1,
"/users/yannpringault/git/payfit/components/types": 1
}
}
}
rpt2: included:
'[
"*.ts+(|x)",
"**/*.ts+(|x)"
]'
rpt2: excluded:
'[
"*.d.ts",
"**/*.d.ts"
]'
Saya mengalami masalah yang sama. Pergi dari 24s
menjadi 345s
ketika menabrak TS dari 3.3.4000
menjadi 3.4.3
Saya mencoba mereproduksi dan pada awalnya saya melihat perlambatan, tetapi menggunakan clean: true
dan bolak-balik antara versi skrip beberapa kali, saya tidak melihat perbedaan pada build bersih sekarang ...
Bisakah Anda menyetel clean: true
, memperbarui rtp2 ke yang terbaru (0.20.1 atau master) dan mengatur waktu build beberapa kali berturut-turut pada ts 3.3 dan ts 3.4?
@ezolenko Maaf atas balasan yang terlambat!
Saya menaruh clean: true
dan meningkatkan rtp2 menjadi 0.20.1
. Berikut hasilnya:
TS 3.3.3333
build -> 18s
tsc -> 14.39s
TS 3.3.4000
build -> 17.3s
tsc -> 14.39s
TS 3.4.1
build -> 5m 25.1s
tsc -> 21.26s
TS 3.4.3
build -> 5m 52.7s
tsc -> 21.57s
Selain itu ada masalah ini pada repo TS yang tampaknya terkait tetapi saya memiliki @types/styled-components
disematkan ke v4.1.4
sehingga tidak menutupi kasus saya.
Beri tahu saya jika Anda membutuhkan info lebih lanjut.
Untuk bersenang-senang saya juga mencoba membangun 3.5
:
TS 3.5.0-dev. 20190413
build -> 1m 23.5s
tsc -> 18.84s
Masalah yang Anda temukan (https://github.com/Microsoft/TypeScript/issues/30663) dan fakta bahwa 3.5-dev menjadi 5 kali lebih cepat untuk Anda membuat saya berpikir mereka melakukan sesuatu dengan LanguageServer
API. Ini adalah API rpt2 yang digunakan sebagai bagian dari kompilasi dan yang digunakan oleh pemeriksa ketik di IDE (itulah sebabnya WebStorm kehabisan waktu, dll.).
Proyek Anda mungkin menggunakan tipe struktur yang terpengaruh di tempat lain, itulah mengapa menyematkan styled-components
tidak membantu. Dan itulah mengapa saya tidak melihat perlambatan besar saat membangun rpt2 itu sendiri misalnya.
Saya kira kita akan menunggu rilis 3.5 final.
btw, coba buat dengan opsi check: false
Adakah yang mengkonfirmasi jika ini diperbaiki dengan rilis 3.5?
@ tomasro27 Bukan untuk saya, atau dengan 6 ( 3.6.0-dev.20190621
). Sepertinya <3,3 masih yang tercepat.
Sepertinya 3.5 sedikit lebih cepat tetapi masih bisa lebih baik
Apakah ada pembaruan tentang ini? Sepertinya masih diblokir oleh TS?
Ya, menurutku tidak ada yang bisa dilakukan dari sini. Siapapun dipersilakan untuk mencoba :)
+1
3.5.3 juga sangat lambat bagi kami
check: false
bekerja dengan baik.
Tetapi masalahnya adalah itu tidak memberikan kesalahan kompilasi apa pun (jika Anda menggunakan vscode, itu akan meminta kesalahan 😄).
Setidaknya saya bisa melakukan check: false
saat saya mengerjakan CSS (di JS). 👍
@ezolenko, tahukah Anda apa persisnya panggilan api skrip ketikan yang menyebabkan build melambat? :)
@ZainlessBrombie tidak, semua yang saya tahu ada di utas ini. Masalah ketikan yang ditautkan mungkin terkait, tetapi bukan penyebab langsung (karena mereka mengatakan itu harus diperbaiki di 3.5+, dan ternyata tidak).
Jika Anda memiliki build yang lambat dalam proyek Anda, periksa apakah ts 3.3 sebenarnya lebih cepat jika memungkinkan, mungkin masalahnya bukan pada skrip ketikan, tetapi hal lain.
Baik terima kasih. Jika saya menyiasatinya, ini mungkin dinding yang ingin saya hantam sehingga untuk berbicara :)
Sunting: Masalah ini hanya terjadi untuk file yang mengimpor komponen bergaya seperti yang terlihat
Juga, dokumentasi Typecript sangat buruk
Skrip tipe profil mengungkapkan sumber masalah menjadi gabungan yang sangat besar yang dimiliki komponen bergaya ini. Satu-satunya tempat untuk memperbaikinya adalah skrip ketikan, kecuali ada cara untuk mendapatkan skrip ketikan ke resolusi modul cache (yang seharusnya).
Saya sebenarnya tidak menggunakan cache resolusi modul dalam panggilan nodeModuleNameResolver di sini: https://github.com/ezolenko/rollup-plugin-typescript2/blob/b7c7389dcdf168715669520128ca656d6e940111/src/index.ts#L148
Tidak yakin apakah itu membuat ts menggunakan default satu atau tidak menggunakan satu sama sekali.
Ya, saya melihat TODO itu :)
Sayangnya debugging cache resolusi modul ketika digunakan menunjukkan bahwa itu cache rebass tetapi bukan komponen bergaya karena beberapa alasan. Ini melewati cache internal untuk ...
Saat ini saya sedang dalam proses migrasi basis kode C # dari perpustakaan saya ke TypeScript dan saya menggunakan Rollup untuk bundling. (Saya memiliki toolchain C #> Haxe> JavaScript kustom sebelumnya). Sayangnya saya juga menderita cukup banyak pada kecepatan kompilasi basis kode TypeScript baru saya yang membuat pengembangan cukup sulit.
Jika memungkinkan, saya dengan senang hati memberikan beberapa laporan profil jika memungkinkan untuk membuatnya.
Berikut beberapa wawasan untuk proyek saya:
Biasanya saya menggunakan ttypescript untuk melakukan beberapa transformasi AST.
Baris Kode : ~ 50000
rollup -c rollup.config.ts : ~ 9-10sec
rollup -c rollup.config.ts -w (kompilasi awal) : ~ 9-10sec
rollup -c rollup.config.ts -w (menambahkan 1 peringatan dalam 1 file TS) : ~ 20sec
rollup -c rollup.config.ts -w (menghapus peringatan lagi) : ~ 20sec
tsc --versi : 3.8.3
tsc --project tsconfig.json : ~ 6-7sec
tsc --project tsconfig.json -w (kompilasi awal) : ~ 6-7sec
tsc --project tsconfig.json -w (menambahkan 1 peringatan dalam 1 file TS) : ~ 0.1-0.2sec
tsc --project tsconfig.json -w (menghapus peringatan lagi) : ~ 0.1-0.2sec
ttsc --version : 3.8.3
ttsc --project tsconfig.json : ~ 7-8sec
ttsc --project tsconfig.json -w (kompilasi awal) : ~ 6-7sec
ttsc --project tsconfig.json -w (menambahkan 1 peringatan dalam 1 file TS) : ~ 0.1-0.2sec
ttsc --project tsconfig.json -w (menghapus peringatan lagi) : ~ 0.1-0.2sec
Build inkremental aktif di tsconfig.
Menurut saya cukup tidak biasa bahwa build inkremental / jam tangan akan memakan waktu dua kali lebih banyak daripada build penuh.
Hal-hal tampaknya menjadi gila di lingkungan saya saat datang ke pengujian. Saya menghubungkan rollup dengan karma dan plugin skrip ini. Seperti yang mungkin Anda ketahui: setiap rangkaian pengujian mendapatkan bundelnya sendiri, yang berarti jumlah di atas menumpuk. Memori tumbuh hingga> 2GB dari waktu ke waktu; bahkan setelah beberapa menit uji coba tidak benar-benar dimulai. Ini terjadi pada setiap npm run test
.
Setelah mencapai area "Menghasilkan bundel untuk ..." pada pembuatan pengujian, saya melihat angka yang sangat tinggi:
File01.test.ts yang berisi 1 pengujian sederhana dari kelas parser membutuhkan waktu 15 detik
File02.test.ts yang berisi 11 tes penguraian XML membutuhkan waktu 2,5 menit
File03.test.ts bahkan tidak selesai setelah 5 menit.
Saya tidak tahu di mana masalah ini mungkin disebabkan dan apakah itu benar-benar karena modul skrip rollup tetapi ini tampaknya merupakan masalah yang paling mungkin terkait dengan saya.
Karena repo saya cukup besar dan rumit, saya tidak membagikan detail lebih lanjut tentang konfigurasi. Jika ada yang bisa memandu saya cara mengumpulkannya, saya akan dengan senang hati memberikan log / hasil pembuatan profil, dll. Saya akan mencoba menyiapkan repositori independen sederhana baru yang mencerminkan situasi proyek saya secara keseluruhan, tetapi saya tidak dapat menjanjikan bahwa masalah ini akan tetap ada.
@ Danielku15 Masalah utama Anda adalah bahwa Anda bermigrasi dari C # dan bukan dari C ++ :)
Plugin ini tidak secara eksplisit menggunakan build inkremental milik typescript (ini tidak ada saat dimulai).
Anda dapat mencoba @rollup/plugin-typescript
(https://github.com/rollup/plugins/tree/master/packages/typescript), mereka menggunakan pendekatan yang berbeda menurut saya dan mungkin memberi Anda nomor yang berbeda.
Pilihan lainnya adalah melakukan kompilasi skrip skrip dari rantai rollup (sebagai langkah prebuild di npm atau semacamnya) dan memberi makan js yang dihasilkan ke rollup sebagai gantinya. Watch build akan menarik, meskipun saya pikir Anda dapat memulai tsc dan rollup dalam mode jam tangan dan jika proyek dikonfigurasi dengan benar, itu hanya akan berfungsi.
Masalah utama Anda adalah Anda bermigrasi dari C # dan bukan dari C ++
Off-Topic: Saya tidak yakin apakah saya ingin memigrasi framework / library C ++ ke TypeScript. Bergantung pada penggunaan makro dan templat (yang cenderung disukai pengembang C ++), hal-hal mungkin menjadi liar selama migrasi 😅 Untungnya basis kode C # saya selalu disesuaikan dengan gaya yang memungkinkan kompilasi silang ke bahasa lain sehingga hasilnya cukup dapat diterima dari struktur kode . Saya hanya perlu mencari tahu sedikit lebih baik bagaimana mengatur modul untuk mengurangi overhead. 😊
Plugin ini tidak secara eksplisit menggunakan build inkremental milik typescript (ini tidak ada saat dimulai).
Ini menarik, apakah plugin ini memiliki strategi build "tambahan" kustom sendiri? Ini bisa menjelaskan mengapa build full-clean mungkin membutuhkan waktu lebih lama daripada perubahan sumber saat menggunakan jam tangan. Kompilasi skrip kurang lebih stabil, sangat disayangkan plugin ini belum dapat memanfaatkan pembaruan tambahan, tetapi menurut saya waktu yang dihabiskan dalam kompiler skrip tipe stabil. Tetapi waktu yang dihabiskan untuk rollup tampaknya bervariasi. Hanya ini yang menjelaskan kepada saya bahwa build bersih lebih cepat daripada perubahan kode dengan mode jam tangan.
Anda dapat mencoba @ rollup / plugin-typescript ...
Terima kasih atas petunjuknya, saya akan mencobanya untuk melihat apakah itu membaik.
Pilihan lainnya adalah melakukan kompilasi skrip dari rantai rollup
Saya memiliki penyiapan seperti itu di awal, tetapi membatalkannya di tengah jalan agar "jam tangan" dibangun selama pengembangan. Saya akan mencobanya lagi jika saya dapat menghubungkan pipa dengan dua alat "menonton" secara independen. 👍
Pembaruan 1: Saya dapat mengatur seluruh kompilasi dan lingkungan pengujian saya sekarang dengan memanggil tsc yang dirantai dengan rollup. Saya perlu membuat plugin rollup saya sendiri untuk menyelesaikan jalur tsconfig dengan benar tetapi setelah itu berfungsi dengan baik.
Kompilasi bersih: 9 detik, Tonton kompilasi: 0,5-1 detik dan pengujian melalui Karma + Rollup juga berjalan (kompilasi memerlukan waktu sedikit lebih lama karena menghasilkan bundel untuk setiap rangkaian pengujian).
Komentar yang paling membantu
@ezolenko Maaf atas balasan yang terlambat!
Saya menaruh
clean: true
dan meningkatkan rtp2 menjadi0.20.1
. Berikut hasilnya:TS 3.3.3333
TS 3.3.4000
TS 3.4.1
TS 3.4.3
Selain itu ada masalah ini pada repo TS yang tampaknya terkait tetapi saya memiliki
@types/styled-components
disematkan kev4.1.4
sehingga tidak menutupi kasus saya.Beri tahu saya jika Anda membutuhkan info lebih lanjut.
Untuk bersenang-senang saya juga mencoba membangun
3.5
:TS 3.5.0-dev. 20190413