2025 如何通过 Node.js TypeScript 的新功能來进行轻量高效的的后端开发
框架选择
优先考虑
需要服务器端渲染可以考虑
其他
TypeScript
推荐的 tsconfig
配置
// tsconfig.json
{
"compilerOptions": {
"target": "ESNext",
"module": "NodeNext",
"moduleResolution": "nodenext",
"noEmit": true, // Optional - see note below
"forceConsistentCasingInFileNames": true, //程序试图通过与磁盘上的大小写不同的大小写来包含文件,则 TypeScript 将发出错误
"verbatimModuleSyntax": true, // TypeScript 会原封不动保留你的 import / export 语法, https://www.typescriptlang.org/tsconfig/#verbatimModuleSyntax
"erasableSyntaxOnly": true, // Node.js 仅支持不具有运行时语义的 TypeScript 特定语法
"skipLibCheck": true, // 跳过默认库声明文件的类型检查
"rewriteRelativeImportExtensions": true // 将相对导入路径中的 .ts、.tsx、.mts 和 .cts 文件扩展名重写为输出文件中对应的 JavaScript 文件扩展名
}
}
开发环境可以通过下面两个命令启动
- node 直接启动
node --experimental-strip-types index.ts
- 使用 tsx 启动
node --import=tsx index.ts
Subpath Imports
Subpath Imports
(子路径导入)是一种现代化模块导入方式,配合 Node.js 的 exports
, imports
字段或 TypeScript 的 paths
设置, 可以带来以下几个显著好处
- 清晰的模块结构
- 简化路径,避免深层相对路径
- 支持自动补全与类型提示
- 统一的项目导入方式
ESM
环境变量
您不再需要像 dotenv
之类包来处理.env 文件。简单地使用 --env-file
标志
node --env-file=.env index.ts
watch
比 nodemon
更高效, Node.js 现在支持本地文件监视
node --watch index.ts
测试
您不再需要像 jest
之类包来开发测试, 使用 node:asser
, node:test
编写测试文件, 通过 node --test
启动 Node.js 命令行测试运行器
node --test "**/*.test.js" "**/*.spec.js"
ORM
日志
参数验证
API 文档
代码参考
你可以参考 https://github.com/ckvv/template 的 server-*
项目