Встановіть хост і порт за замовчуванням для сервісу у конфігураційному файлі


166

Я хочу знати, чи можу я встановити хост і порт у конфігураційному файлі, тому мені не потрібно вводити текст

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

замість просто

ng serve

Відповіді:


233

Кутовий CLI 6+

В останній версії кутового, це встановлено в в angular.jsonфайлі конфігурації . Приклад:

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

Ви також можете використовуватиng config для перегляду / редагування значень:

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

Кутова CLI <6

У попередніх версіях це було встановленоangular-cli.json під defaultsелементом:

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

7
Щоб полегшити ситуацію, ви можете вказати 0.0.0.0замість ip хоста для прослуховування на всіх пристроях Ethernet. Таким чином можна використовувати як локальну, так і публічну ip адресу.
дман

VS2017, здається, ігнорує налаштування портів з якоїсь дивної причини, але я використав цей трюк з додаванням @dman (0.0.0.0 як хост), щоб принаймні включити віддалені з'єднання.
Ola Berntsson

4
Здається, що в останніх версіях CLI все змінилося (я використовую версію 6). Дивіться тут для більш детальної інформації .
Друг Натан

Чи є спосіб зробити це середовище конфігурації специфічним?
Панкай

71

Наразі ця функція не підтримується, проте якщо це щось, що турбує вас, альтернатива буде у вашому пакеті.json ...

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

Таким чином ви можете просто запустити npm start

Інший варіант, якщо ви хочете зробити це для кількох проектів, - це створити псевдонім, який ви можете потенційно назвати, ngserveякий буде виконувати вашу вищезгадану команду.


вибачте, foo.bar, зверніться до чого? ОНОВЛЕННЯ: я видалив його і працює, але не знаю.
Мухаммед Муса

32

Можна налаштувати HTTP-порт за замовчуванням та той, який використовується сервером LiveReload, за допомогою двох параметрів командного рядка:

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

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


29

Це змінилося в останніх кутових CLI.

Ім'я файлу змінилося на angular.json, а також змінилася структура.

Ось що ви повинні зробити:

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

1
Працював для мене з версією @
angular

1
Працював для мене з версією @ angular / cli 7.0.6
Керрі Джонс

16

Інший варіант - запустити ng serveкоманду з --portпараметром, наприклад

ng serve --port 5050 (тобто для порту 5050)

Крім того, команда:, ng serve --port 0автоматично призначить доступний порт для використання.


--port 0 Біт був хорошою інформацією , але я не впевнений , що він відповідає на питання.
Еш

Сподобався варіант --port 0, який автоматично призначив доступний порт для використання ...
vinsinraw

Питання конкретно запитує, як його встановити у конфігураційний файл
Ojonugwa Jude Ochalifu

11

У нас є два способи змінити номер порту за замовчуванням у 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": "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
Ви не хочете змінювати або змінювати вихідні файли. angular.json - це правильний спосіб змінити значення за замовчуванням схеми, про що йдеться у прийнятій відповіді.
Bjørn Lindner

6

Ви можете зберегти їх у файлі, але вам потрібно вкласти його .ember-cli(наразі, принаймні); дивіться https://github.com/angular/angular-cli/isissue/1156#issuecomment-227412924

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

редагувати: тепер ви можете встановити їх у angular-cli.json станом на фіксацію https://github.com/angular/angular-cli/commit/da255b0808dcbe2f9da62086baec98dacc4b7ec9 , яка вбудована 1.0.0-beta.30


5

Якщо ви плануєте запустити кутовий проект у власному хості / IP та порту , не потрібно вносити зміни у конфігураційний файл

Наступна команда працювала для мене

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

Де,

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

Приклад

ng serve --host 192.168.322.144 --port 6300

Результат для мене був такий

введіть тут опис зображення


3

Якщо у вас є Windows, ви можете це зробити так:

  1. У кореневому каталозі проекту створіть файл run.bat
  2. Додайте команду з вибором конфігурацій у цьому файлі. Наприклад

ng serve --host 192.168.1.2 --open

  1. Тепер ви можете клацнути та відкривати цей файл, коли хочете подавати.

Це не стандартний спосіб, але зручний у використанні (що я відчуваю).


0

ось що я поклав у package.json (працює під кутом 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"
  },

Тоді звичайний npm-старт потягне вміст запуску. Також можна додати інші параметри до вмісту



0

Якщо ви хочете спеціально відкрити локальну ip-адресу під час запуску ng serve, ви можете зробити наступне:

npm install internal-ip-cli --save
ng serve --open --host $(./node_modules/.bin/internal-ip --ipv4)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.