You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过npm同时启动Angular与Node.js服务器?当前配置仅生效前者

如何用npm同时启动Angular和Node.js服务器

嗨,我来帮你搞定这个问题!你遇到的情况其实很典型——你用了&&来串联两个命令,但ng serve是一个持续运行的开发服务器,它永远不会“执行完成”,所以后面的node server.js根本没机会启动。下面给你几个实用的解决方案:

方法1:用concurrently包(推荐跨平台方案)

这是最常用的并行执行命令的工具,支持Windows、Mac、Linux所有系统。

  • 首先安装依赖:
    npm install --save-dev concurrently
    
  • 然后修改package.json里的scripts
    "scripts": {
      "start": "concurrently \"ng serve\" \"node server.js\"",
      "start:ng": "ng serve",
      "start:node": "node server.js"
    }
    
    这里用双引号把每个命令包起来,确保concurrently能正确识别两个独立的命令。执行npm start就能同时启动两个服务器了!

方法2:不装额外包的方案(分系统)

如果你不想加新依赖,可以根据操作系统用不同的写法:

  • Mac/Linux(Unix-like系统):用&把Angular服务器放到后台运行,这样后面的Node命令会立刻执行:
    "scripts": {
      "start": "ng serve & node server.js"
    }
    
    注意:如果要停止两个服务器,可能需要手动杀进程(比如用pkill node)。
  • Windows系统:用start命令让每个命令在新窗口启动:
    "scripts": {
      "start": "start ng serve && start node server.js"
    }
    
    这个会弹出两个命令行窗口,分别运行两个服务器。

方法3:分开启动(最简单的临时方案)

不用改任何配置,直接打开两个终端窗口:

  • 第一个终端跑:ng serve
  • 第二个终端跑:node server.js
    这个方法虽然手动,但最直观,适合临时调试用。

小提示

如果遇到端口冲突(比如某个端口被占用),可以修改Angular的启动端口:ng serve --port 4201,或者修改Node服务器的端口配置,确保两个服务用不同的端口就行。

内容的提问来源于stack exchange,提问作者Sta-Dev

火山引擎 最新活动