代码之家  ›  专栏  ›  技术社区  ›  Chris

如何在端口80上运行ng serve

  •  3
  • Chris  · 技术社区  · 6 年前

    package.json 我拥有的文件:

    "scripts": {
      "start": "concurrently \"ng serve --host something.mydomain.com --port 4200 --live-reload false --env=prod\" \"gulp\""
    },
    

    当我跑的时候 npm start 几秒钟后,我就可以在我的浏览器中访问我的项目了 http://something.mydomain.com:4200

    https://something.mydomain.com (即没有端口号)

    我修改了我的作业包.json收件人:

    "scripts": {
      "start": "concurrently \"ng serve --host something.mydomain.com --port 80 --live-reload false --env=prod\" \"gulp\""
    },
    

    包.json 我得到:

    端口80已在使用中。使用“-port”指定其他端口。

    如果我跑了 lsof -i :80 然后什么也没有出现,所以我确信端口80没有被占用。我怀疑问题是端口80是一个受保护的端口,而我作为 ec2-user 那我没有正确的权限?

    如何在端口80上运行我的项目?

    2 回复  |  直到 6 年前
        1
  •  11
  •   Community CDub    4 年前

    就我个人而言,我不会在生产中使用angularcli( ng serve ng build dist 文件夹。这样做你会有一个更快的应用程序,因为它不会被“动态复制”,也不会与CLI交互。

    但是,如果您想坚持您的方法,为了在标准端口上运行应用程序(因此不必指定它;对于HTTP网站为80,对于HTTPS网站为443),您必须根据您使用的角度版本修改不同的文件:

    • >

      编辑 angular.json 文件和 serve 对象(下 <yourProjectName> 对象),添加以下代码:

      "options": { "port": 80 }

    • 角度<6.0:

      angular-cli.json defaults

      "serve": { "port": 80 }

    编辑:如果应用程序是使用 ng serve --prod 命令时,将打印以下警告:

    **************************************************************************************** 
    This is a simple server for use in testing or debugging Angular applications locally. It hasn't been reviewed for security issues.
    
    DON'T USE IT FOR PRODUCTION!
    ****************************************************************************************
    
        2
  •  4
  •   Michael Tsirulnikov    6 年前

    尝试添加 sudo 在ng服务之前,因为端口80需要作为根运行。