在配置文件中为ng服务设置默认主机和端口

cre*_*re8 154 angular-cli angular

我想知道我是否可以在配置文件中设置主机和端口,所以我不必输入

ng serve --host foo.bar --port 80
Run Code Online (Sandbox Code Playgroud)

而不仅仅是

ng serve
Run Code Online (Sandbox Code Playgroud)

Tob*_*s J 221

Angular CLI 6+

在最新版本的Angular中,这是在配置文件中设置angular.json.例:

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "projects": {
        "my-project": {
            "architect": {
                "serve": {
                    "options": {
                        "port": 4444
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用ng config查看/编辑值:

ng config projects["my-project"].architect["serve"].options {port:4444}
Run Code Online (Sandbox Code Playgroud)

Angular CLI <6

在以前的版本中,这是angular-cli.jsondefaults元素下面设置的:

{
  "defaults": {
    "serve": {
      "port": 4444,
      "host": "10.1.2.3"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 为了简化操作,您可以指定"0.0.0.0"而不是主机IP来监听所有以太网设备.这样就可以使用本地主机和公共IP地址. (7认同)
  • 在最近的CLI版本中,事情已经发生了变化(我使用的是版本6).[详见此处](/sf/answers/3523142451/). (4认同)

Bro*_*cco 67

截至目前,该功能不受支持,但如果这是困扰你的一个替代品将在你的package.json ...

"scripts": {
  "start": "ng serve --host foo.bar --port 80"
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以简单地运行 npm start

如果要在多个项目中执行此操作,另一个选项是创建一个别名,您可以使用该别名ngserve来执行上述命令.


Shr*_*t N 32

您可以使用两个命令行选项配置默认HTTP端口和LiveReload服务器使用的端口:

ng serve --host 0.0.0.0 --port 4201 --live-reload-port 49153

https://github.com/angular/angular-cli


小智 28

这在最新的Angular CLI中发生了变化.

文件名已更改为angular.json,结构也已更改.

这是你应该做的:

"projects": {
    "project-name": {
        ...
        "architect": {
            "serve": {
                "options": {
                  "host": "foo.bar",
                  "port": 80
                }
            }
        }
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)


Mwi*_*iza 15

另一种选择是ng serve使用--port选项例如运行命令

ng serve --port 5050 (即港口5050)

或者,命令:ng serve --port 0,将自动分配可用端口以供使用.


Sat*_*tel 10

我们有两种方法可以更改Angular中的默认端口号。

cli命令的第一种方法:

ng serve --port 2400 --open

第二种方法是在以下位置进行配置:ProjectName \ node_modules \ @ angular-devkit \ build-angular \ src \ dev-server \ schema.json。

在schema.json文件中进行更改。

{“ title”:“ Dev Server Target”,“ description”:“ Build Facade的Dev Server目标选项。”,“ type”:“ object”,“ properties”:{“ browserTarget”:{“ type”:“ string ”,“说明”:“服务目标”。},“ port”:{“ type”:“ number”,“ description”:“要监听的端口。”,“ default”:2400},

  • 您不想覆盖或更改源文件。如已接受的答案所述,angular.json是覆盖架构默认值的正确方法。 (2认同)

Dan*_*ell 6

你可以把它们保存在一个文件中,但你必须把它放进去.ember-cli(至少目前); 请参阅https://github.com/angular/angular-cli/issues/1156#issuecomment-227412924

{
"port": 4201,
"liveReload": true,
"host": "dev.domain.org",
"live-reload-port": 49153
}
Run Code Online (Sandbox Code Playgroud)

编辑:你现在可以在提交https://github.com/angular/angular-cli/commit/da255b0808dcbe2f9da62086baec98dacc4b7ec9的 angular-cli.json中设置这些,这是在build 1.0.0-beta.30中


Bas*_*sil 6

如果您计划在自定义主机/IP端口中运行 angular 项目,则无需在配置文件中进行更改

以下命令对我有用

ng serve --host aaa.bbb.ccc.ddd --port xxxx
Run Code Online (Sandbox Code Playgroud)

在哪里,

aaa.bbb.ccc.ddd --> IP you want to run the project
xxx --> Port you want to run the project
Run Code Online (Sandbox Code Playgroud)

例子

ng serve --host 192.168.322.144 --port 6300
Run Code Online (Sandbox Code Playgroud)

结果对我来说是

在此处输入图片说明