求助:Express项目出现SyntaxError: Unexpected token import错误
解决Express项目中的
SyntaxError: Unexpected token import错误 这个错误的核心原因是:Node.js默认采用CommonJS模块规范(用require/module.exports),并不原生支持ES6的import/export语法,所以需要通过Babel转译,或者改用CommonJS写法来解决。下面给你两种可行的解决方案:
方案一:用Babel转译ES6语法(保留import写法)
你已经在package.json里配置了babel-node,但可能缺少关键的Babel配置文件,按以下步骤完善:
确保安装所有必要依赖
如果还没安装完整,执行以下命令:npm install --save-dev babel-cli babel-preset-env创建Babel配置文件
在项目根目录下新建.babelrc文件,写入以下内容:{ "presets": ["env"] }这个文件会告诉Babel使用
env预设,自动根据你的Node.js版本转译ES6+代码到兼容的语法。检查package.json配置
你的start脚本已经配置正确:"scripts": { "start": "nodemon ./index.js --exec babel-node -e js" }另外可以把
main字段从app.js改成index.js,让配置更贴合你的入口文件:"main": "index.js"启动项目
执行npm start,应该就能正常运行,不会再出现Unexpected token import错误了。
方案二:改用CommonJS语法(快速解决,无需Babel)
如果不想配置Babel,可以直接把代码里的ES6模块语法改成Node.js原生支持的CommonJS写法:
修改你的
index.js为:const express = require('express'); const data = require('./data/data'); const app = express(); const PORT = 3000; app.listen(PORT, () => console.log(`Your server is running on ${PORT}`));启动项目
直接运行node index.js或者用nodemon启动:nodemon index.js这种方式不需要额外依赖,适合快速解决问题。
内容的提问来源于stack exchange,提问作者code-8
相关产品推荐
相关产品推荐

