You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 16.4 VPS上Laravel-mix执行npm run production报错求助

解决Laravel Mix执行npm run production时的SyntaxError问题

你遇到的问题核心原因很明确:你的Node.js版本太老了。Node v4.2.6对ES6的支持非常有限,而当前使用的Laravel Mix版本已经用到了ES6的块级作用域声明(也就是代码里的let关键字),老版本Node无法识别这个语法,所以才抛出了SyntaxError。

下面是具体的解决步骤:

1. 升级Node.js和npm到兼容版本

Laravel 5.6官方要求的Node版本至少是8.10.0,npm版本至少是5.6.0,我们先把旧版本替换掉:

  • 卸载系统里的旧版本Node和npm:
    sudo apt-get remove nodejs npm -y
    
  • 添加适配Ubuntu 16.04的Node.js 8.x源:
    curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    
  • 安装新版本Node.js:
    sudo apt-get install -y nodejs
    
  • 验证版本是否达标:
    node -v # 应该输出v8.x.x格式的版本号
    npm -v # 应该输出5.x及以上版本号
    

2. 重新安装项目依赖

之前的node_modules是基于老Node版本安装的,存在兼容性问题,需要清理后重新安装:

  • 删除旧的依赖文件夹和锁文件:
    rm -rf node_modules package-lock.json
    
  • 重新安装所有依赖:
    npm install
    

3. 重新执行生产构建

现在再运行生产环境构建命令,应该就能正常执行了:

npm run production

备选方案(不推荐)

如果暂时无法升级Node版本,你可以尝试安装兼容Node 4.x的Laravel Mix旧版本(比如2.x系列):

  • 修改项目根目录下package.json里的laravel-mix版本为^2.1
  • 执行npm install重新安装依赖

但还是强烈建议升级Node版本,老版本不仅缺少必要的新特性,还可能存在未修复的安全漏洞,后续维护成本会更高。

内容的提问来源于stack exchange,提问作者bwen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:58:42