Angular 6+ 如何更改默认端口 4200

Posted

技术标签:

【中文标题】Angular 6+ 如何更改默认端口 4200【英文标题】:Angular 6+ How to change default port 4200 【发布时间】:2018-11-04 06:12:05 【问题描述】:

这个问题特定于 Angular 6 版本,而不是更早的版本,因为 .angular-cli.json 文件已被 angular.json 文件替换。

我创建了一个新的 Angular 6 项目,并尝试更改其默认端口,但这次是在 angular.json 中。

  "defaults": 
    "serve": 
      "port": 4220
  ,  

但是得到以下错误:

在 .angular-cli.json 中检测到无效架构,请更正并尝试 又来了!

有人知道如何使用这个新版本的 Angular 来做到这一点吗?

【问题讨论】:

angular-cli server - how to specify default port的可能重复 @Orlandster 提到的问题已于 16 年 5 月 11 日发出,它谈论的是 angular-cli,Angular 的第 6 版于 18 年 5 月发布,在那里找到这样的答案令人困惑。 【参考方案1】:

由于标题不准确:“angular-cli server - how to specify default port”,我的问题很难找到答案,但感谢Vladymir Gonzalez,我找到了。

为了帮助其他人快速找到答案,我在这里提取了Angular 6的具体部分,属于elwyn:

@angular/cli@6.x 更新:在新的 angular.json 中,您现在为每个“项目”指定一个端口

"projects": 
    "my-cool-project": 
        ... rest of project config omitted
        "architect": 
            "serve": 
                "options": 
                    "port": 4850    <-- add your custom port number here      
                
            
        
    

所有可用选项:

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

【讨论】:

这可以使用 cli config 命令设置:ng config projects.[YOURPROJECTNAME].architect.serve.options.port 1337 这是最好的答案。谢谢!【参考方案2】:

您也可以在服务时指定端口:ng serve --port 3000

您可以将任何有效的端口号放在那里,它将从该端口提供服务。

【讨论】:

我更喜欢通过将端口保存在 angular.json 文件中来避免这种情况,这样我就可以只使用“ng serve -o”,而不必每次都尝试记住每个应用程序的端口号。跨度> 有道理,我通常有多个项目服务于不同的存储/身份验证数据,所以我倾向于只指定服务时间【参考方案3】:

我正在为 angular 2+ 应用程序提供答案。

如果您想在不同的端口启动 2 个 Angular 应用程序,即

1) port 4200 
2) port 5000

您需要更改 "package.json" 文件,只需更改添加一行 "Script block" 在第一个花括号中,您的应用程序名称,版本默认可用,

"scripts": 
    "ng": "ng",
    "start": "ng serve --port 5000 ",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  , 

通过 "npm start" 命令启动您的应用程序。 此命令将在 Port 5000 上启动您的应用程序。

【讨论】:

长期使用的最佳答案,因此我不必每次都使用“ng serve --port 4300”(或其他数字)。谢谢!【参考方案4】:

更改默认端口的两种方法 第一:使用命令

ng serve --port 8000 || ng serve --host '192.168.1.1' --port 8000

第二:编辑你的 package.json

"scripts": 
    "ng": "ng",
    "start": "ng serve --port 8000",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  , 

如果您在系统中的某个时间使用多个项目,则条件第一个是最好的,而我的事情首先适合练习

【讨论】:

【参考方案5】:

答案很简单 在命令提示符下写ng serve --open --port=YourPortNumber

例子:

ng serve --open --port=4201

==== 其他解决方案 ====

你也可以在package.json

"scripts": 
  "start": "ng serve --open --port=4201",

现在,在命令 propmt 中只写 npm start

【讨论】:

【参考方案6】:

要在指定端口上运行 Angular,请使用命令 sudo ng serve --port 8080 代替 8080,您可以指定任何端口号。

这只会在端口号上运行项目,除非你关闭它。

【讨论】:

以上是关于Angular 6+ 如何更改默认端口 4200的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一端口 4200 上运行 angular 4 app 和 nodejs api 用于生产和开发?

“端口 4200 已在使用中”。杀死与 4200 相关的所有进程都不起作用。

Angular 6 + Spring Boot:错误:“来自原点 'http://localhost:4200' 已被 CORS 策略阻止”

同一服务器上的两个项目具有不同的端口,但客户端(Angular 6)无法调用服务器(Spring Boot)

运行 ng serve 命令时“端口 4200 已在使用中”

在 Docker 容器中访问 Angular 应用程序