运行ts文件出错及解决办法
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension “.ts” 这个错误是因为 ts-node
无法直接处理 TypeScript 文件作为 ES 模块。你可以尝试以下解决方案:
解决方案 1: 使用 --loader ts-node/esm
选项
如果你使用的是 ES 模块(例如使用了 import/export
语法),可以通过 --loader ts-node/esm
选项来运行 TypeScript 文件:
node --loader ts-node/esm .\packages\compiler-core\src\parse.ts
解决方案 2: 确保 tsconfig.json
中正确配置了 module
选项
如果你的项目使用了 tsconfig.json
,确保其中的 module
选项设置为支持 ES 模块的选项,例如 esnext
或 commonjs
。
{
"compilerOptions": {
"module": "esnext", // 或者 "commonjs"
"target": "es2015", // 你之前可能已经设置
"lib": ["es2015", "dom"],
// 其他配置...
}
}
解决方案 3: 使用 ts-node
的 -T
选项
如果你只想快速运行 TypeScript 文件而不关心模块解析方式,可以使用 -T
选项,这会禁用类型检查,但可以帮助绕过某些复杂的模块解析问题:
ts-node -T .\packages\compiler-core\src\parse.ts
解决方案 4: 使用 ts-node/register
运行文件
你还可以尝试通过 node
直接运行,并使用 ts-node/register
来处理 TypeScript 文件:
node -r ts-node/register .\packages\compiler-core\src\parse.ts
解决方案 5: 安装并使用 ts-node-esm
如果你需要更完整的 ES 模块支持,可以安装 ts-node-esm
:
npm install ts-node-esm
然后运行:
ts-node-esm .\packages\compiler-core\src\parse.ts
以上任何一种方法都应该能够解决你遇到的问题。根据你项目的具体需求选择最合适的方式。