如何用ts-node运行.mts文件?导入报错问题求助
使用ts-node运行.mts文件的解决方案
可以用ts-node运行.mts文件,无需修改package.json的"type": "module",按以下步骤配置和执行即可:
配置tsconfig.json
确保TypeScript编译选项适配ES模块和Node.js的模块解析规则,在compilerOptions中添加或修改以下配置:{ "compilerOptions": { "module": "NodeNext", "moduleResolution": "NodeNext", "target": "ES2020", "outDir": "./dist", "strict": true } }其中
module和moduleResolution设为NodeNext(或Node16),是为了让TypeScript正确识别.mts作为ES模块的后缀,同时匹配Node.js的模块解析逻辑。执行.mts文件的命令
运行时需要明确告诉ts-node以ES模块模式处理文件,使用--esm参数:ts-node --esm your-file.mts如果遇到模块解析的兼容问题,可额外添加实验性参数:
ts-node --esm --experimental-specifier-resolution=node your-file.mts错误原因说明
你遇到的警告和错误,是因为.mts被Node.js默认识别为ES模块,但ts-node默认以CommonJS模式运行,两者的模块加载逻辑不匹配。通过上述配置和命令,让ts-node切换到ES模块模式,同时让TypeScript的编译规则对齐Node.js的ES模块规范,就能解决冲突。
内容的提问来源于stack exchange,提问作者dras
相关产品推荐
相关产品推荐

