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

如何基于现有代码搭建MERN栈?Ubuntu环境启动报错求助

问题原因

这个错误是因为你安装的concurrently@8.2.2使用了空值合并运算符(??),而你的Node.js版本低于14.0.0(该语法从Node.js 14.0.0开始支持),导致Node无法解析该语法。


解决方法

方案1:升级Node.js版本(推荐)

  1. 先检查当前Node版本:
    node -v
    
  2. 升级到LTS版本(比如18.x或20.x,MERN栈推荐长期支持版):
    • 用nvm(Node版本管理器)安装(不破坏系统默认Node):
      1. 参考nvm官方文档完成nvm安装
      2. 重启终端后执行:
        nvm install --lts
        nvm alias default lts/*
        
    • 或者用NodeSource官方源安装:
      1. 导入对应版本的Node.js官方软件源
      2. 执行安装命令:
        sudo apt-get install -y nodejs
        
  3. 升级完成后重新运行npm start即可。

方案2:降级concurrently到兼容旧Node的版本

如果不想升级Node,可将concurrently降级到支持旧Node的版本(比如6.x,支持Node >=10):

npm uninstall concurrently
npm install concurrently@6.5.1 --save

package.json优化建议

  1. 区分依赖类型:将concurrently移到devDependencies(仅开发环境使用,生产环境无需):
    "dependencies": {
      "express": "^4.18.2",
      "mongoose": "^8.0.1"
    },
    "devDependencies": {
      "concurrently": "^6.5.1" // 升级Node后可改为^8.2.2
    }
    
  2. 添加版本约束:用engines字段指定Node和npm的最低版本,避免后续兼容问题:
    "engines": {
      "node": ">=18.0.0",
      "npm": ">=8.0.0"
    }
    
  3. 完善脚本与环境区分:
    • 添加前端构建脚本,用于生产环境部署:
      "scripts": {
        "start": "concurrently \"npm run server\" \"npm run client\"",
        "server": "node server.js",
        "client": "cd client && npm start",
        "build": "cd client && npm run build",
        "prod": "npm run build && npm run server" // 生产环境先构建前端再启动服务
      }
      
    • 开发时推荐用nodemon自动重启服务器,安装后修改server脚本:
      npm install nodemon --save-dev
      
      "scripts": {
        "server": "nodemon server.js"
      }
      
  4. 补充项目元信息:完善描述、关键词等字段,便于后续维护:
    "description": "基于MERN栈的房地产毕业设计网站",
    "keywords": ["mern", "real-estate", "full-stack", "graduation-project"],
    "author": "Kayla"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:50:02