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

PM2执行pm2 start npm -- start报错:进程立即停止,日志报SyntaxError

Hey there, let’s troubleshoot why PM2 is immediately stopping your Angular CLI + Express project. That SyntaxError: Unexpected token : log is a big hint—usually it’s either a Node.js version mismatch or an incorrect PM2 startup command. Let’s work through this step by step:

1. First, rule out project-level issues

Before digging into PM2, make sure npm start runs flawlessly when you execute it directly in your project root. If this fails, the problem is with your app, not PM2. If it works, we know the issue is in how PM2 is launching things.

2. Fix your PM2 startup command

The command you used (pm2 start npm -- start) is missing a key piece: the run keyword. PM2 needs explicit direction to trigger an npm script. Try this instead:

pm2 start npm --name "angular-express-app" -- run start
  • --name gives your process a friendly label so you can easily spot it with pm2 list
  • The -- separates PM2’s own arguments from the command we want npm to run
  • Adding run tells npm to execute the start script defined in your package.json

3. Make sure PM2 runs from your project root

If PM2 isn’t launched in the same directory as your package.json, it might fail to find dependencies or config files, leading to odd errors. Specify your project’s absolute path with the --cwd flag:

pm2 start npm --name "angular-express-app" --cwd /home/you/projects/your-angular-app -- run start

Swap /home/you/projects/your-angular-app for your actual project root path.

4. Match Node.js versions (this is probably the fix for that syntax error)

That Unexpected token : error almost always means PM2 is using an older Node.js version that doesn’t support modern syntax in your code (like arrow functions, object shorthand, or ES6+ features). Here’s how to align versions:

  • First, check the Node version your app works with: Run node -v in the terminal where npm start works—this is the version PM2 needs to use.
  • If you use nvm, switch to that version first before starting PM2:
    nvm use 16.18.0 # Replace with your app's Node version
    pm2 start npm --name "angular-express-app" -- run start
    
  • If PM2 is defaulting to a system-wide Node version that’s too old, explicitly point it to the correct interpreter path:
    pm2 start npm --interpreter ~/.nvm/versions/node/v16.18.0/bin/node --name "angular-express-app" -- run start
    

5. Use an ecosystem config file (cleaner & more maintainable)

For long-term projects, setting up an ecosystem.config.js file in your project root makes managing PM2 settings way easier. Here’s a template:

module.exports = {
  apps: [
    {
      name: "angular-express-app",
      script: "npm",
      args: "run start",
      cwd: "/home/you/projects/your-angular-app", // Your project path
      interpreter: "~/.nvm/versions/node/v16.18.0/bin/node", // Correct Node path
      env: {
        NODE_ENV: "development"
      }
    }
  ]
};

Then start PM2 with:

pm2 start ecosystem.config.js

6. Dig into logs for more clues

If you’re still stuck, pull up all PM2 logs to get additional context:

pm2 logs

This will show both error and output logs, which might reveal hidden issues like missing dependencies or misconfigured environment variables.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:30:00