Express项目中import router语法错误致nodemon崩溃问题求助
解决Express+Babel启动时的SyntaxError和nodemon崩溃问题
看起来你遇到的问题根源是ES模块导入语法错误,这直接导致了Babel转译失败,进而引发nodemon反复重启崩溃。我来一步步帮你排查解决:
1. 修复核心语法错误(最关键)
你的第三行代码import router from express.Router()完全不符合ES模块的语法规范——import ... from后面必须跟字符串形式的模块名称,不能直接写函数调用。这就是报错Unexpected token (3:19)的直接原因。
把你的顶部代码替换成以下两种正确写法之一:
方案一:解构导入Router
import express from 'express'; import favicon from 'serve-favicon'; // 从express模块中解构出Router类 import { Router } from 'express'; // 创建router实例 const router = Router();
方案二:通过express实例创建router
import express from 'express'; import favicon from 'serve-favicon'; // 直接用导入的express对象创建router实例 const router = express.Router();
2. 验证Babel配置(如果修复语法后仍有问题)
如果修复语法后还是出现转译错误,检查你的Babel配置是否正确:
- 确保安装了正确的依赖(建议使用新版@babel系列,替代旧版babel-core):
npm install @babel/core @babel/node @babel/preset-env --save-dev - 在项目根目录创建
.babelrc配置文件,添加ES6转译规则:{ "presets": ["@babel/preset-env"] } - 检查package.json中的启动脚本是否正确:
"scripts": { "start": "nodemon --exec babel-node ./index.js" }
3. 清理缓存重新启动
有时候依赖缓存会导致奇怪的问题,执行以下步骤重置:
- 完全停止当前的nodemon进程(快捷键
Ctrl+C) - 删除依赖目录和锁文件:
rm -rf node_modules package-lock.json - 重新安装依赖并启动:
npm install npm start
内容的提问来源于stack exchange,提问作者code-8
相关产品推荐
相关产品推荐

