Đặt máy chủ và cổng mặc định cho ng phục vụ trong tệp cấu hình


166

Tôi muốn biết nếu tôi có thể đặt máy chủ và cổng trong tệp cấu hình để tôi không phải nhập

ng serve --host foo.bar --port 80

Thay vì chỉ

ng serve

Câu trả lời:


233

CLI góc 6+

Trong phiên bản mới nhất của góc, điều này được đặt trong các angular.jsontập tin cấu hình . Thí dụ:

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

Bạn cũng có thể sử dụngng config để xem / chỉnh sửa giá trị:

ng config projects["my-project"].architect["serve"].options {port:4444}

CLI góc <6

Trong các phiên bản trước, phần này được đặtangular-cli.json bên dưới defaultsphần tử:

{
  "defaults": {
    "serve": {
      "port": 4444,
      "host": "10.1.2.3"
    }
  }
}

7
Để làm cho mọi thứ dễ dàng hơn, bạn có thể chỉ định 0.0.0.0thay vì ip máy chủ để nghe trên tất cả các thiết bị Ethernet. Bằng cách này, cả máy chủ cục bộ và địa chỉ IP công cộng đều có thể được sử dụng.
dman

VS2017 dường như bỏ qua cài đặt cổng vì một số lý do kỳ lạ, nhưng tôi đã sử dụng thủ thuật này với phần bổ sung của @dman (0.0.0.0 làm máy chủ) để ít nhất kích hoạt các kết nối từ xa.
Ola Berntsson

4
Có vẻ như mọi thứ đã thay đổi trong các phiên bản gần đây của CLI (Tôi đang sử dụng phiên bản 6). Xem ở đây để biết thêm chi tiết .
Bạn bè của Nathan

Có cách nào để làm cho môi trường cấu hình này cụ thể?
Pankaj

71

Cho đến thời điểm hiện tại, tính năng này không được hỗ trợ, tuy nhiên nếu đây là thứ làm phiền bạn thì một sự thay thế sẽ nằm trong gói.json của bạn ...

"scripts": {
  "start": "ng serve --host foo.bar --port 80"
}

Bằng cách này bạn có thể chạy npm start

Một tùy chọn khác nếu bạn muốn thực hiện điều này trên nhiều dự án là tạo một bí danh, mà bạn có khả năng có thể đặt tên ngservesẽ thực thi lệnh trên của bạn.


xin lỗi, foo.bar, tham khảo để làm gì? CẬP NHẬT: tôi đã gỡ bỏ nó và hoạt động, nhưng không biết.
Muhammed Moussa

32

Bạn có thể định cấu hình cổng HTTP mặc định và cổng được sử dụng bởi máy chủ LiveReload với hai tùy chọn dòng lệnh:

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

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


29

Điều này đã thay đổi trong CLI Angular mới nhất.

Tên tập tin thay đổi thành angular.json, và cấu trúc cũng thay đổi.

Đây là những gì bạn nên làm:

"projects": {
    "project-name": {
        ...
        "architect": {
            "serve": {
                "options": {
                  "host": "foo.bar",
                  "port": 80
                }
            }
        }
        ...
    }
}

1
Làm việc cho tôi với phiên bản @ angular / cli 6.1.5
PHEDev

1
Làm việc cho tôi với phiên bản @ angular / cli 7.0.6
Kerry Jones

16

Một tùy chọn khác là chạy ng servelệnh với --porttùy chọn, ví dụ:

ng serve --port 5050 (tức là cho cổng 5050)

Ngoài ra, lệnh : ng serve --port 0, sẽ tự động gán một cổng có sẵn để sử dụng.


Một --port 0 chút là thông tin tốt đẹp nhưng tôi không chắc nó trả lời câu hỏi.
Tro

Thích tùy chọn --port 0, tự động gán cổng có sẵn để sử dụng ...
vinsinraw

Câu hỏi đặc biệt hỏi làm thế nào để đặt nó trong một tệp cấu hình
Ojonugwa Jude Ochalifu

11

Chúng tôi có hai cách để thay đổi số cổng mặc định trong Angular.

Cách đầu tiên là bằng lệnh CLI:

ng serve --port 2400 --open

Cách thứ hai là theo cấu hình tại vị trí:

ProjectName\node_modules\@angular-devkit\build-angular\src\dev-server\schema.json.

Thực hiện các thay đổi trong tệp giản lược.

{
 "title": "Dev Server Target",
  "description": "Dev Server target options for Build Facade.",
  "type": "object",
  "properties": {
    "browserTarget": {
      "type": "string",
      "description": "Target to serve."
    },
    "port": {
      "type": "number",
      "description": "Port to listen on.",
      "default": 2400
    },

4
Bạn không muốn ghi đè hoặc thay đổi tệp nguồn. angular.json là cách chính xác để ghi đè mặc định lược đồ, như đã đề cập trong câu trả lời được chấp nhận.
Bjørn Lindner

6

Bạn có thể lưu chúng trong một tệp, nhưng bạn phải đặt nó vào .ember-cli(ít nhất là tại thời điểm này); xem https://github.com/angular/angular-cli/issues/1156#issuecomment-227412924

{
"port": 4201,
"liveReload": true,
"host": "dev.domain.org",
"live-reload-port": 49153
}

chỉnh sửa: bây giờ bạn có thể đặt chúng trong angular-cli.json như cam kết https://github.com/angular/angular-cli/commit/da255b0808dcbe2f9da62086baec98dacc4b7ec9 , trong bản dựng 1.0.0-beta.30


5

Nếu bạn đang dự định chạy dự án góc trong máy chủ / IP tùy chỉnh và Cổng thì không cần thực hiện thay đổi trong tệp cấu hình

Lệnh sau làm việc cho tôi

ng serve --host aaa.bbb.ccc.ddd --port xxxx

Ở đâu,

aaa.bbb.ccc.ddd --> IP you want to run the project
xxx --> Port you want to run the project

Thí dụ

ng serve --host 192.168.322.144 --port 6300

Kết quả cho tôi là

nhập mô tả hình ảnh ở đây


3

Nếu bạn đang ở trên windows, bạn có thể làm theo cách này:

  1. Trong thư mục gốc dự án của bạn, Tạo tệp run.bat
  2. Thêm lệnh của bạn với sự lựa chọn cấu hình của bạn trong tệp này. Ví dụ

ng serve --host 192.168.1.2 --open

  1. Bây giờ bạn có thể nhấp và mở tệp này bất cứ khi nào bạn muốn phục vụ.

Đây không phải là cách tiêu chuẩn nhưng thoải mái khi sử dụng (mà tôi cảm thấy).


0

đây là những gì tôi đưa vào pack.json (chạy angular 6):

{
  "name": "local-weather-app",
  "version": "1.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --port 5000",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

Sau đó, một khởi đầu npm đơn giản sẽ kéo vào nội dung bắt đầu. Cũng có thể thêm các tùy chọn khác vào nội dung


0

nhập mô tả hình ảnh ở đây

Chỉ có một điều bạn phải làm. Nhập cái này vào Dấu nhắc lệnh của bạn: ng phục vụ - cổng 4021 [hoặc bất kỳ cổng nào khác mà bạn muốn gán, ví dụ: 5050, 5051, v.v.]. Không cần phải thay đổi trong các tập tin.


0

Nếu bạn muốn mở địa chỉ IP cục bộ của mình khi chạy ng phục vụ, bạn có thể làm như sau:

npm install internal-ip-cli --save
ng serve --open --host $(./node_modules/.bin/internal-ip --ipv4)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.