前言

node v23开始直接支持ts,也就是说可以直接 node xxx.ts

但是v23成为lts还需要几个月时间吧。

那么再次之前我们应该怎么让他支持呢?

tsc

标准的做法,将ts打包成js,然后再运行js。

效率低下,不方便!

ts-node

支持直接运行ts脚本:

npx ts-node index.ts

但是不支持热更新!

ts-node-dev

ts-node支持热更新版本,从名字带 dev 就知道它适合于开发环境使用:

npx ts-node-dev index.ts

好几年不更新了,也不支持 tsx 等高级能力!

tsx

ts-node-dev的进化版本:

npx tsx index.ts

原生支持 esm,对 .ts, .tsx, .jsx, .mts, .cts 文件有更好的支持

处理模块导入导出更加智能!

并且支持热更新!

总结

参考:

https://blog.csdn.net/inthat/article/details/144056248

https://blog.csdn.net/m0_74772114/article/details/141029877

工具 类型 支持 ESM 速度 热重载 推荐场景
tsc 编译器(只编译) ️ 快 构建产物、CI 构建、类型检查
ts-node 解释器 + 执行器 ️ 部分支持 快速运行 .ts 脚本
ts-node-dev 监听 + 热重载 ️ 限支持 本地开发、自动重启服务
tsx 新派运行器(推荐) 原生强支持 ️ 非常快 通用执行、现代开发

当然无脑推荐 tsx

node运行ts的更多相关文章

  1. [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境

    快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...

  2. kubernetes 利用label标签来绑定到特定node运行pod

    利用label标签来绑定到特定node运行pod: 不如将有大量I/O的pod部署到配置了ssd的node上或者需要使用GPU的pod部署到某些安装了GPU的节点上 查看节点的标签: kubectl ...

  3. 如何让 node 运行 es6 模块文件,及其原理

    如何让 node 运行 es6 模块文件,及其原理 最新版的 node 支持最新版 ECMAScript 几乎所有特性,但有一个特性却一直到现在都还没有支持,那就是从 ES2015 开始定义的模块化机 ...

  4. pod指定node运行

    1.给node打上label kubectl label nodes cn-hongkong.i-j6c5pm0b59y9kaos565o apptype=monitoring 2.查看结果kubec ...

  5. node运行js获得输出的三种方式

    一.通过console.log输出(我最喜欢的) 1.js脚本 1.js var arguments = process.argv.splice(2); //获得入参 var a= arguments ...

  6. vscode隐藏运行ts生成的js文件和map文件

    在code-首选项-用户设置中放入以下代码,覆盖原有的 { "files.exclude": { "node_modules": true, "**/ ...

  7. Node、TS、Koa学习笔记

    这样定义可以轻松拿到gender属性 这样定义,函数内显示没有gender 这种方法能得到gender但是函数内部没有gender 这种方式能到gender 但是在函数里施symbel属性,外部不能访 ...

  8. 解决node 运行接口 出现 Cannot destructure property `us` of 'undefined' or 'null'.

    出现 参数是 undefined or null 一.检查是否安装 body-parser server.js中是否引入 app.use(bodyParser.urlencoded({ extende ...

  9. node运行的第一个helloWorld程序

    hello world 参考链接: https://www.runoob.com/nodejs/nodejs-http-server.html https://npm.taobao.org/ http ...

  10. ts文件的编译和运行

    hello.ts代码 function sayHello(person: string): string { return 'Hello, ' + person; } let user = 'Tom' ...

随机推荐

  1. STM32 DMA中的DMA_BufferSize和DMA_MemoryDataSize   

    示例代码1 采集2通道ADC数据 查看代码 extern uint16_t ADC3ConvertedValue[2]; /* DMA2 Stream0 channel2 配置 *********** ...

  2. 判断页面是否存在指定内容,校验结果(page should contain element指令的用法)

    会员调整成分销商后,分销商列表寻找该记录的方法

  3. 康谋分享 | aiSim5基于生成式AI扩大仿真测试范围(终)

    在前面的几章节中探讨了aiSim仿真合成数据的置信度,此外在场景重建和测试流程闭环的过程中,难免会面临3D场景制作重建耗时长.成本高.扩展性低以及交通状况复杂程度难以满意等问题,当前的主要挑战在于如何 ...

  4. JVM 新生代垃圾回收如何避免全堆扫描?

    JVM 新生代垃圾回收如何避免全堆扫描? 在 JVM 新生代的垃圾回收(Minor GC)过程中,为了提高效率并减少回收时间,垃圾收集器会避免对整个堆(包括新生代和老年代)进行扫描.以下是 JVM 如 ...

  5. ES6 Fielddata is disabled on text fields by default

    使用ES做聚合运算的时候,有时候会遇到这个错误 Fielddata is disabled on text fields by default. Set fielddata=true on [host ...

  6. Font Awesome文档使用手册

    Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小.颜色.阴影以及任何可以用CSS的样式. 使用文档:https://fa4.uihtm.com/ Font Awesome 是一套 ...

  7. vault

    目录 Vault使用场景 数据加密 访问控制 有时间限制的访问 灾备恢复 基于身份(Identity)的安全性 人类和机器认证 静态和动态secrets的Secrets engines Install ...

  8. 网络编程:非阻塞I/O

    阻塞VS非阻塞 阻塞I/O:应用程序会被挂起,等待内核完成操作,实际上,内核所做的事情是将CPU时间切换给其他有需要的进程,网络应用程序在这种情况下是得不到CPU时间做该做的事情的. 非阻塞I/O:当 ...

  9. MarchingCube算法之C#实现三维❤

    首先致谢该博文,讲解的非常详细:https://blog.csdn.net/u013339596/article/details/19167907?spm=1001.2101.3001.6650.7& ...

  10. C#/.NET/.NET Core技术前沿周刊 | 第 38 期(2025年5.12-5.18)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...