运行ts文件踩坑
1.node test.ts是不可以运行ts文件的,建议全局安装ts-node,只在项目的终端内安装的话是无效不能使用ts-node的
2.
"ts-node ./src/utils/moduleTest/modulec.ts" 出错:
ERR_UNKNOWN_FILE_EXTENSION
这时候需要改为:
ts-node --esm ./src/utils/moduleTest/modulec.ts
具体原因:
当模块具有无法识别的文件扩展名或根本没有扩展名,并且正在作为本机 ESM 执行时,节点会抛出此错误。发生这种情况的原因可能有以下几种:
- 您正在使用具有无扩展二进制文件的工具,例如
mocha
。- CommonJS 支持无扩展名的文件,但原生 ESM 不支持。
- 解决方案:升级到 ts-node >= v10.6.0,它实现了一种解决方法。
- 我们的 ESM 加载器尚未安装。
- 解决方案:使用
ts-node-esm
、ts-node --esm
或添加"ts-node": {"esm": true}
到您的 tsconfig.json。 文档
- 解决方案:使用
- 您已将项目移至 ESM,但仍有一个配置文件,例如
webpack.config.ts
,该文件必须作为 CommonJS 执行- 解决方案:如果相关工具支持,请将配置文件重命名为
.cts
- 解决方案:配置模块类型覆盖。文档
- 解决方案:如果相关工具支持,请将配置文件重命名为
更多请参考:
https://github.com/TypeStrong/ts-node?tab=readme-ov-file#err_unknown_file_extension
积累小的知识,才能成就大的智慧,希望网上少一些复制多一些原创有用的答案