如何在Next.js项目中用ts-node运行单个.ts文件测试且不修改默认配置
可行解决方案
以下方案均不会修改Next.js项目的默认配置:
方案一:使用ts-node内置的ESM模式运行
直接在原有命令基础上增加--esm参数,临时启用ES模块支持即可:npx ts-node --esm lib/my_module.ts如果运行时和项目现有tsconfig配置存在冲突,可以增加
--skip-project参数跳过项目tsconfig加载:npx ts-node --esm --skip-project lib/my_module.ts不同系统下如果上述命令仍报错,可以通过临时环境变量指定loader运行:
- macOS/Linux:
NODE_OPTIONS="--loader ts-node/esm" npx ts-node lib/my_module.ts - Windows CMD:
set NODE_OPTIONS="--loader ts-node/esm" && npx ts-node lib/my_module.ts - Windows PowerShell:
$env:NODE_OPTIONS="--loader ts-node/esm"; npx ts-node lib/my_module.ts
- macOS/Linux:
方案二:使用tsx作为运行工具
tsx是基于esbuild的TypeScript运行时,默认兼容ES模块和CommonJS模块格式,无需额外参数也不需要修改项目配置,运行速度比ts-node更快:npx tsx lib/my_module.ts方案三:临时修改文件后缀
如果仅为单次调试,可以将目标文件的后缀从.ts改为.mts,ts-node会自动识别为ES模块格式运行,调试完成后改回原后缀即可。
内容的提问来源于stack exchange,提问作者mirkokiefer
相关产品推荐
相关产品推荐

