使用TypeScript搭建Node后端遇.ts文件扩展名未知错误求助
解决"Unknown file extension ".ts""错误的步骤
1. 补全核心开发依赖
你的package.json里缺少ts-node和typescript这两个关键依赖,先执行安装:
npm install -D ts-node typescript
2. 修正dev启动脚本
因为你启用了ESM模式("type": "module"),需要给ts-node明确指定ESM模式,修改package.json的scripts字段:
{ "scripts": { "dev": "ts-node --esm index.ts" } }
如果觉得ts-node配置麻烦,也可以用更轻量化的tsx替代:
npm install -D tsx
然后脚本改为:
{ "scripts": { "dev": "tsx index.ts" } }
3. 优化tsconfig配置
调整配置项,确保和ESM模式完全兼容:
{ "compilerOptions": { "module": "NodeNext", "moduleResolution": "NodeNext", "target": "ES2020", "sourceMap": true, "outDir": "dist", "esModuleInterop": true, "skipLibCheck": true }, "include": ["src/**/*", "index.ts"], // 明确包含根目录的入口文件 "exclude": ["node_modules"], "ts-node": { "esm": true // 移除experimentalSpecifierResolution,新版本ts-node已无需该配置 } }
4. 检查文件导入规范
ESM模式下,本地文件导入必须加上扩展名,比如:
// 错误写法 import utils from './utils' // 正确写法 import utils from './utils.ts'
验证操作
- 执行
npm run dev测试错误是否消失 - 如果仍有问题,删除
node_modules和package-lock.json,重新执行npm install后再测试
内容的提问来源于stack exchange,提问作者Aytee
相关产品推荐
相关产品推荐

