HapiJS实践项目运行node server.js时出现SyntaxError异常求助
解决HapiJS启动时的SyntaxError: Unexpected token =问题
嘿,这个问题我之前折腾Hapi的时候也遇到过,大概率是Node.js版本不兼容导致的,给你梳理下原因和具体的排查解决步骤:
问题根源
你看到的SyntaxError: Unexpected token =出现在/node_modules/hapi/lib/server.js:107,基本是因为你当前安装的HapiJS版本用到了较新的JS语法——比如类字段声明(就是在class里直接写property = 初始值这种写法),但你的Node.js版本太旧,还不支持这个特性。
HapiJS的不同版本对Node的版本要求卡得很严:
- 要是你装的是
@hapi/hapi(Hapi后来迁移到了@hapi命名空间)v20及以上,得用Node.js v16.11+; - v19版本要求Node v14.15+;
- v18版本至少要Node v12.10+;
- 更老的v17及以下版本,对Node的要求会更低一些。
排查&解决步骤
先查自己的Node版本
打开终端敲这个命令,看看当前用的Node版本:node -v对比下上面的版本要求,一眼就能看出是不是版本不够。
两种修复方案任你选
方案一:升级Node.js(推荐)
用nvm(Node版本管理器)来切换版本最方便,不会影响其他项目:# 先装nvm(如果还没装的话) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 安装符合要求的Node版本,比如v18 nvm install 18 # 切换到这个版本 nvm use 18升级完再启动项目试试。
方案二:降级Hapi到兼容版本
要是不想升级Node,就把Hapi换成和你当前Node版本匹配的旧版本。比如你现在用的是Node v10,那就装Hapi v17:npm uninstall @hapi/hapi npm install @hapi/hapi@17
额外排查:依赖缓存问题
有时候依赖安装时的缓存也会搞出奇怪的问题,可以试试删除node_modules和锁文件后重新安装:rm -rf node_modules package-lock.json npm install
做完上面的步骤,再执行node server.js应该就能正常启动了。
内容的提问来源于stack exchange,提问作者Jitendra
相关产品推荐
相关产品推荐

