node运行ts
前言
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的更多相关文章
- [phvia/dkc] Docker Compose 快速构建(LNMP+Node)运行环境
快速构建(LNMP+Node)运行环境. dkc 在此作为 docker-compose 的缩写,你可以理解为 alias dkc=docker-compose 准备 安装 docker 选择1) 从 ...
- kubernetes 利用label标签来绑定到特定node运行pod
利用label标签来绑定到特定node运行pod: 不如将有大量I/O的pod部署到配置了ssd的node上或者需要使用GPU的pod部署到某些安装了GPU的节点上 查看节点的标签: kubectl ...
- 如何让 node 运行 es6 模块文件,及其原理
如何让 node 运行 es6 模块文件,及其原理 最新版的 node 支持最新版 ECMAScript 几乎所有特性,但有一个特性却一直到现在都还没有支持,那就是从 ES2015 开始定义的模块化机 ...
- pod指定node运行
1.给node打上label kubectl label nodes cn-hongkong.i-j6c5pm0b59y9kaos565o apptype=monitoring 2.查看结果kubec ...
- node运行js获得输出的三种方式
一.通过console.log输出(我最喜欢的) 1.js脚本 1.js var arguments = process.argv.splice(2); //获得入参 var a= arguments ...
- vscode隐藏运行ts生成的js文件和map文件
在code-首选项-用户设置中放入以下代码,覆盖原有的 { "files.exclude": { "node_modules": true, "**/ ...
- Node、TS、Koa学习笔记
这样定义可以轻松拿到gender属性 这样定义,函数内显示没有gender 这种方法能得到gender但是函数内部没有gender 这种方式能到gender 但是在函数里施symbel属性,外部不能访 ...
- 解决node 运行接口 出现 Cannot destructure property `us` of 'undefined' or 'null'.
出现 参数是 undefined or null 一.检查是否安装 body-parser server.js中是否引入 app.use(bodyParser.urlencoded({ extende ...
- node运行的第一个helloWorld程序
hello world 参考链接: https://www.runoob.com/nodejs/nodejs-http-server.html https://npm.taobao.org/ http ...
- ts文件的编译和运行
hello.ts代码 function sayHello(person: string): string { return 'Hello, ' + person; } let user = 'Tom' ...
随机推荐
- 感觉程序员要被 AI 淘汰了?学什么才有机会?
感觉程序员要被 AI 淘汰了?学什么才有机会? ️ 推荐观看视频版:https://www.bilibili.com/video/BV1i9Z8YhEja AI 会淘汰程序员么? 我的答案是 &quo ...
- ADM3251E使用一段时间后损坏
使用ADM3251E导致CPU发热 - 参考链接: https://bbs.elecfans.com/jishu_1687010_1_1.html 笔者设计的电路板在解决RS232隔离通信的时采用了A ...
- java基础之Stream流
一.使用Stream的目的:用于解决已有集合类库既有的弊端,只求关注[目的],不关注[方式],且其数据源:可以是集合,数组等 例子: public class NormalFilter { publi ...
- 康谋分享 | 在基于场景的AD/ADAS验证过程中,识别挑战性场景!
基于场景的验证是AD/ADAS(自动驾驶和高级驾驶辅助)系统开发过程中的重要步骤,它包括对自动化系统进行一系列预定义场景的测试.测试中包含的场景越多,尤其挑战性场景越多,人们对正在测试的AD/ADAS ...
- 如果 MySQL 中没有 MVCC,会有什么影响?
如果 MySQL 中没有 MVCC,会有什么影响? MVCC(Multi-Version Concurrency Control) 是 MySQL(尤其是 InnoDB 存储引擎)中一个至关重要的并发 ...
- 【命令详解001】top
top命令可以用于实时监控cpu的状态,显示系统中各个进程的资源占用情况. 本次来详细看下top命令. 常用命令示例: top # 对,无参数的top命令是最长用的资源监控命令. [root@VM_0 ...
- API接口调用--历史上的今天(v1.0)
历史上的今天 参考(聚合数据):https://www.juhe.cn/docs/api/id/63 事件列表(v1.0) 接口地址: http://api.juheapi.com/japi/toh ...
- Vite 3 来了!新增功能 + 如何迁移
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- Flutter视频压缩技术:如何在应用中优化视频文件的质量和大小?
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 手把手教你使用C#创建一个WebSearchAgent
PocketFlowSharp介绍 最近我对PocketFlow比较感兴趣,不仅是因为它是一个极简的LLM框架,更加让我觉得很不错的地方在于作者提供了很多方便学习的例子,就算没有LLM应用开发经验,也 ...