swc-node
ช่วยฉันเป็นนักพัฒนาโอเพ่นซอร์สเต็มเวลาโดยสนับสนุนฉันบน Github
ตัวแปลง TypeScript/JavaScript
ที่รวดเร็วโดยไม่มี node-gyp
และสคริปต์หลังการติดตั้ง
รัน TypeScript ด้วยโหนดโดยไม่ต้องคอมไพล์หรือตรวจสอบประเภท:
npm i -D @swc-node/register
node -r @swc-node/register script.ts
node --import @swc-node/register/esm-register script.ts # for esm project with node>=20.6
node --loader @swc-node/register/esm script.ts # for esm project with node<=20.5, deprecated
ส่งผ่าน --enable-source-maps
ไปยังโหนดสำหรับโปรเจ็กต์ esm
ตั้งค่าตัวแปรสภาพแวดล้อม SWCRC=true เมื่อคุณต้องการโหลดไฟล์ .swcrc
SWCRC=true node -r @swc-node/register script.ts
#!/usr/bin/env -S node --import @swc-node/register/esm-register
// your code
รันด้วย shebang เพิ่ม TS_NODE_PROJECT=null
( #!/usr/bin/env TS_NODE_PROJECT=null node --import @swc-node/register/esm-register
) เพื่อใช้ละเว้น tsconfig.json
ตัวแปลง TypeScript
ที่เร็วที่สุด
รายละเอียด: @swc-node/core
แปลง RxJS
AjaxObservable.ts
เป็น ES2015 และ CommonJSJavaScript
รหัสมาตรฐาน: ม้านั่ง
ข้อมูลฮาร์ดแวร์ :
Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: 6-Core Intel Core i7
Processor Speed: 2.6 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 12 MB
Hyper-Threading Technology: Enabled
Memory: 16 GB
transformSync
esbuild x 510 ops/sec ±1.28% (88 runs sampled)
@swc-node/core x 438 ops/sec ±1.00% (88 runs sampled)
typescript x 28.83 ops/sec ±10.20% (52 runs sampled)
babel x 24.21 ops/sec ±10.66% (46 runs sampled)
Transform rxjs/AjaxObservable.ts benchmark bench suite: Fastest is esbuild
transform
ขนาน UV_THREADPOOL_SIZE=11 yarn bench
@swc-node/core x 1,253 ops/sec ±0.90% (75 runs sampled)
esbuild x 914 ops/sec ±1.31% (77 runs sampled)
Transform rxjs/AjaxObservable.ts parallel benchmark bench suite: Fastest is @swc-node/core
yarn bench
@swc-node/core x 1,123 ops/sec ±0.95% (77 runs sampled)
esbuild x 847 ops/sec ±3.74% (71 runs sampled)
Transform rxjs/AjaxObservable.ts parallel benchmark bench suite: Fastest is @swc-node/core
หม้อแปลง TypeScript
ที่ตลกที่สุด
รายละเอียด: @swc-node/jest
การทดสอบในโครงการ
TypeScript
ล้วนๆ เป้าหมายการคอมไพล์คือES2018
ทำงานด้วยnpx jest --no-cache
,ts-jest
ได้รับการกำหนดค่าด้วยisolatedModules: true
Test Suites: 49 passed, 49 total
Tests: 254 passed, 254 total
Snapshots: 53 passed, 53 total
Time: 54.631 s
Ran all test suites.
Done in 62.71s.
Test Suites: 49 passed, 49 total
Tests: 254 passed, 254 total
Snapshots: 53 passed, 53 total
Time: 10.511 s
Ran all test suites.
Done in 14.34s.
ทางเลือก ts-node/register/transpile-only
ที่เร็วขึ้น
รายละเอียด: @swc-node/register
pnpm i
pnpm build
pnpm test