欢迎关注我的微信公众号:阿拉平平
今天测试环境新上了个前端项目,但是部署过程却遇到了点坑,特此记录下。
项目并不复杂,整个流程就是先npm install、npm run build,再通过rsync进行分发。一顿操作过后,Jenkins上配置完成,点击立即构建却提示:
SyntaxError: Unexpected token ...
测试环境上也有其它前端项目,配置都是一个套路。但是就这个新上的项目报错,我陷入沉思......
于是检查报错的上下文,发现这里有点奇怪:
...getAppEntry(),
^^^
莫不是当前node版本不支持...
写法?网上查了点资料,发现也有其他人遇到这种情况,有大佬指出要解决这个问题,node版本要在8.3版本以上:
https://github.com/nuxt/nuxt.js/issues/2927
检查测试环境的node版本,当前版本为6.10
,基本可以定位问题发生的原因了。
于是将node版本升级到10.15
并做了软链接:
# node -v
v10.15.2
然而问题并没有解决,依旧提示语法错误,查看了npm的debug日志,一开始的地方又引起了我的注意:
0 info it worked if it ends with ok
1 verbose cli [ '/opt/node-v6.10.2-linux-x64/bin/node',
1 verbose cli '/opt/node-v10.15.2-linux-x64/bin/npm',
1 verbose cli 'run',
1 verbose cli 'build' ]
从debug日志里可以发现npm版本已经更新了,但是node却没有更新。我推测是npm在执行时没有调用到我配置的node,网上的资料验证了我的想法,npm调用node默认路径为/usr/bin/node
。删除低版本的node,重新做个软链接,问题得以解决。
网友评论