将npm的启动脚本运行在特定端口上的ng serve

10

我在package.json中有一些脚本,我需要知道如何使start脚本正确接受angular-cli的-port参数。

  "scripts": {
    "ng": "ng",
    "start": "ng serve  --proxy-config proxy.conf.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

我们需要这个是因为我们想要同时运行多个软件实例。目前,如果我有一个项目在默认端口 4200 上运行,并尝试在第二个终端窗口中运行 npm start -port 4300,我会收到“端口 4200 已在使用中。使用 '--port' 来指定一个不同的端口。”的提示。

我该怎么做才能让我的构建在特定端口上运行?以及如何使得我可以从命令行传递端口号到 npm start 脚本中?


也许这只是一个小事,但 -port--port 是两个不同的东西。检查拼写错误。 - tadman
你正在使用 Angular CLI 吗? - Sajeetharan
是的,我正在使用angular-cli。@tadman,我已经尝试了--port和-port两种方式。 - BBaysinger
你可能需要在这里的“start”部分中加入“--port”,因为“npm start”不会按照你的期望传递它。 - tadman
好的,那会是什么样子? - BBaysinger
4个回答

48

如果您添加"--",则参数将通过:

npm start -- --port 4301

需要注意的是,这只是解决方案的一部分,并且是作为Sajeetharan答案的补充。@Sajeetharan的答案也值得点赞。 - BBaysinger

6

将其更改为:

"scripts": {
    "ng": "ng",
    "start": "ng serve --port 4301",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

1
好的,这很简单。但是我该如何使得我可以从命令行传递端口号到npm启动脚本中呢? - BBaysinger
尝试运行以下命令:ng serve --host 0.0.0.0 --port 4301 - Sajeetharan
1
具体来说,我希望能够通过命令行传入端口号,例如npm start -port XXXX,以便使用我指定的端口。 - BBaysinger

1
你可以尝试这个命令: ng serve --port 4400 npm start -- --port 4400

0
你可以尝试这个命令:
npm run start -- -p 4300

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接