可用的方案有以下几种:
GitHub - TypeStrong/ts-node: TypeScript execution and REPL for node.js
GitHub - esbuild-kit/esno: Alias to tsx
GitHub - swc-project/swc-node: Faster ts-node without typecheck
GitHub - lukeed/tsm: TypeScript Module Loader
node -r
只支持 commonjs
模块,这可能意味着:如果项目是 ESM 的,且 package.json
中添加了 "type": "module"
,node -r
就无法运行。
Command-line API | Node.js v18.2.0 Documentation
CommonJS vs native ECMAScript modules | ts-node
这里是 ts-node
支持运行 ESM Native 模块的反馈通道。
https://github.com/TypeStrong/ts-node/issues/1007
Joshua 在在 NodeJS 中使用 ES Moudle
的过程中遇到的问题。
ES Modules in NodeJS - Troubleshooting Resources
另外一种实践对于使用 TypeScript 写脚本来说还算实用: