我想用5000而不是4200。

我尝试在根名称ember-cli上创建一个文件,并按照下面的代码放置JSON:

{
   "port": 5000
}

但我的应用程序仍然运行在4200,而不是5000


当前回答

在CLI的最新版本(我使用的是6.0.1)中,情况似乎发生了变化。我可以通过在项目的angular.json中添加一个port选项来改变ng serve使用的默认端口:

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "projects": {
        "my-project": {
            "architect": {
                "serve": {
                    "options": {
                        "port": 4201
                    }
                }
            }
        }
    }
}

(本例中只显示相关属性。)

其他回答

你也可以在通常输入NPM start的angular cli中输入下面的命令

Ng服务器——主机“ip-address”——端口“port-number”

在包中。Json,查找ng serve命令。 将ng serve命令替换为ng serve——port 4201。 然后在终端使用npm启动或yarn启动。 它应该会起作用。

如果你有多个Angular app,你可以为它们指定不同的端口,并同时运行它们。

端口设置的位置已经更改了几次。

如果使用Angular CLI

改变angular-cli.json

{
  "defaults": {
    "serve": {
      "host": "0.0.0.0",
      "port": 5000 
    }
  }
}

如果使用最新的Angular CLI

改变angular.json

"projects": {
    "project-name": {
        ...
        "architect": {
            "serve": {
                "options": {
                  "host": "0.0.0.0",
                  "port": 5000
                }
            }
        }
        ...
    }
}

无需更改任何文件

执行命令

ng serve --host 0.0.0.0 --port 5000

如果你想使用NodeJS环境变量来设置Angular CLI开发服务器的端口值,可以采用以下方法:

创建NodeJS脚本,该脚本可以访问环境变量(比如DEV_SERVER_PORT),并可以运行ng serve,使用该变量的——port参数值(child_process可能是我们的朋友):

const child_process = require('child_process');
const child = child_process.exec(`ng serve --port=${process.env.DEV_SERVER_PORT}`);
child.stdout.on('data', data => console.log(data.toString()));

更新包。Json提供这个脚本通过NPM运行 不要忘记设置DEV_SERVER_PORT环境变量(可以通过dotenv完成)

下面是对这种方法的完整描述:如何通过.env更改Angular CLI开发服务器端口。

我通常使用ng set命令来更改Angular CLI中项目级别的设置。

ng set defaults.serve.port=4201

它会改变。angular。cli。Json,并像前面提到的那样添加端口设置。

在此更改之后,您可以简单地使用ng serve,它将使用首选端口,而不需要每次都指定它。