执行npm run dev时出现ERR_UNKNOWN_FILE_EXTENSION错误求助
解决TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"问题
检查dev脚本配置
先确认package.json里的dev命令是否用了TS执行工具,不要直接用node运行.ts文件:
- 错误示例:
"scripts": { "dev": "node src/index.ts" } - 正确配置(二选一):
使用ts-node(需先安装npm i -D ts-node typescript):
或者用更轻量的"scripts": { "dev": "ts-node src/index.ts" }tsx(需先安装npm i -D tsx):"scripts": { "dev": "tsx src/index.ts" }
验证tsconfig.json核心配置
确保tsconfig.json的compilerOptions包含必要配置,让Node能识别TS模块:
{ "compilerOptions": { "module": "CommonJS", // 若用ES模块则改为"ESNext" "target": "ES2020", "esModuleInterop": true, "moduleResolution": "node", // ES模块对应设为"bundler"或"node16" "skipLibCheck": true }, "include": ["src/**/*"] }
确认package.json的模块类型
- 若项目用ES模块,必须在
package.json添加:
同时"type": "module"ts-node需要加--esm参数:"scripts": { "dev": "ts-node --esm src/index.ts" } - 若用CommonJS,不要加
"type": "module",保持默认即可。
清理依赖缓存
依赖冲突可能导致异常,执行以下命令重置:
rm -rf node_modules package-lock.json npm install
检查导入路径
ES模块环境下,导入TS文件必须带扩展名:
- 错误写法:
import foo from './foo' - 正确写法:
import foo from './foo.ts'
内容的提问来源于stack exchange,提问作者Francis
相关产品推荐
相关产品推荐

