Як змінити кутовий порт з 4200 на будь-який інший


254

Я хочу використовувати 5000 замість 4200 ..

Що я спробував - це створити файл з ім'ям кореня ember-cliта поставити JSON відповідно до коду нижче:

{
   "port": 5000
}

Але мій додаток все ще працює на 4200 замість 5000


2
Можливий дублікат stackoverflow.com/questions/37154813/…
Zac Grierson

Ви також перезапустили сервер?
kris

так @kristjanreinhold
Ashutosh Jha

Чи відповідає це на ваше запитання? сервер
angular

Відповіді:


426

Рішення, що працювало для мене, було

ng serve --port 4401    

(Ви можете змінити 4401 на будь-яке число, яке вам потрібно)

Потім запустіть браузер -> http: // localhost: 4401 /

В основному, у мене було два додатки, і за допомогою вищезазначеного підходу я можу одночасно запускати обидва в моєму середовищі розробки.


Опція '--port 4201' не зареєстрована в команді serve
завершує роботу

5
npm start --port 4401npm start
сторонне позначення

1
Будь ласка , дивіться цю відповідь, а stackoverflow.com/a/52345586/3209545
callee.args

просто доповнення, ви можете одночасно відкрити поданий додаток на новій вкладці браузера, додавши ng serve --port 4401 --open
briancollins081

114

Ви можете змінити порт програми, ввівши таку команду,

служити --порт 4200

Також для постійної установки ви можете змінити порт, відредагувавши файл angular-cli.json

 "defaults": {
    "serve": {
      "port": 8080
    }
  }

2
У новіших випусках слід використовувати ng serve --port 8080 (замість цього немає ":", порожній пробіл).
Джуліан Л.

Якщо це остання настройка "за замовчуванням", вам слід позбутися від кома, яка триває за типом
Освальдо Салазар

1
Це змінилося в останніх версіях CLI - див. Мою відповідь для отримання більш детальної інформації.
Друг Натан

98

Здається, все змінилося в останніх версіях CLI (я використовую 6.0.1). Я зміг змінити порт за замовчуванням, який використовується ng serve, додавши portпараметр до мого проекту angular.json:

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

(У цьому прикладі показані лише відповідні властивості.)


І я хочу змінити також господаря
Кунвар Сінгх

це справді правильна постійна відповідь
WtFudgE

59

Зміна nodel_modules/angular-cli/commands/server.js- це погана ідея, оскільки вона буде оновлюватися при встановленні нової версії angular-cli. Замість цього ви повинні вказати нг служити --port 5000 в , package.jsonяк це:

"scripts": {
    "start": "ng serve --port 5000"
}

Ви також можете вказати хост за допомогою --host 127.0.0.1


Як запустити додаток? ng serve? Мабуть, не працює, коли я переглядаю веб-переглядач,localhost:5000
Ashish Ranjan

1
Я думаю, це має бути прийнятою відповіддю. Майже для людей, які використовують npm startяк команду
блобмейстер

Навіщо використовувати параметр сценарію для постійної конфігурації? Для цього є файл, і цеangular.json
Мозгор

59

Місце для налаштувань портів змінилося кілька разів.

Якщо використовується кутова CLI 1

Зміна angular-cli.json

{
  "defaults": {
    "serve": {
      "host": "0.0.0.0",
      "port": 5000 
    }
  }
}

Якщо використовується останній кутовий CLI

Зміна angular.json

"projects": {
    "project-name": {
        ...
        "architect": {
            "serve": {
                "options": {
                  "host": "0.0.0.0",
                  "port": 5000
                }
            }
        }
        ...
    }
}

Не змінюючи жодного файлу

Виконайте команду

ng serve --host 0.0.0.0 --port 5000

8
Це слід вважати правильною відповіддю, оскільки вона охоплює обидві можливості: постійні чи тимчасові рішення.
Даніель Сантана

1
Я згоден на @Dan
marknt15

У разі постійних змін, чи знаєте ви, чи слід вказати новий порт в іншому файлі "angular.json"? Мій serveрівень варіанту містить два елементи з browserTarget, optionsі configurations/production. Чи слід додати цей новий portзапис у обидва ці чи лише optionsодин?
Мозгор

19

Ніхто не оновлював відповідь на найновіший кутовий CLI.З останнім Angular CLI

За допомогою latest versionangular-cli, у якому angular-cli.json перейменований angular.json, ви можете змінити порт, відредагувавши angular.jsonфайл, який ви зараз вкажете на порт"project"

projects": {
    "my-cool-project": {
        ... rest of project config omitted
        "architect": {
            "serve": {
                "options": {
                    "port": 4500
                }
            }
        }
    }
}

Детальніше про це here


Що з записом "serve / configures / production", який також містить browserTargetзапис, як і serve / optionsколи ми додаємо нове port?
Мозгор

1
Найкраща відповідь за останню версію Angular CLI
Dacomis

14

Зазвичай я використовую ng setкоманду для зміни налаштувань Angular CLI для рівня проекту.

ng set defaults.serve.port=4201

Це змінює зміни вашого .angular.cli.jsonі додає параметри порту, як згадувалося раніше .

Після цієї зміни ви можете використовувати просто, ng serveі він буде використовувати вподобаний порт без необхідності вказувати його кожен раз.


Здається, get / set застаріло на користь конфігурації в 6.0, тому це більше не працює.
VanAlbert

10

Ви також можете ввести команду нижче у свій кутовий кліп, де Ви зазвичай вводите npm start

ng serve --host "ip-address" --port "номер порту"



6

перейти до цього файлу

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

і порт пошуку

"port": {
  "type": "number",
  "description": "Port to listen on.",
  "default": 4200
},

змінити значення за замовчуванням, що вам потрібно, і перезапустити сервер


Працює для мене, просто потрібно помітити, щоб змінити згаданий файл, а не node_modules/@angular/cli/lib/config/schema.json інший, що містить те саме властивість.
lingar

5
  • Для постійних:

    Перейти nodel_modules / angular-cli / command / server.js Пошук var defaultPort = process.env.PORT || 4200; і змінити 4200 на все, що завгодно.

  • Щоб запустити зараз:

    ng serve --port 4500 (Ви змінюєте 4500 на будь-яке число, яке хочете використовувати як порт)


1
Я не думаю, що зміна вмісту пакета, встановленого локально, node_modulesє гарною практикою.
Бруно Брант

5

Не рекомендується змінювати модулі вузлів, оскільки оновлення або повторна інсталяція можуть видалити ці зміни. Тож краще поміняти кутовий кліп

Кутовий 9 в angular.json

{
    "projects": {
            "targets": {
                "serve": {
                    "options": {
                         "port": 5000
                     }
                }     
            }     
    }
}  

4

Ви можете змінити номер порту за замовчуванням, який налаштовано у файлі serve.js.

Шлях буде project_direcory/node_modules/angular-cli/commands/serve.js.

Шукайте цей рядок -> var defaultPort = process.env.PORT || 4200;
Замініть цей рядок ->var defaultPort = process.env.PORT || 5000;


4
Якщо ви читаєте це і роздумуєте про це ... будь ласка, ніколи не редагуйте файли залежності.
емікс



4

У angular.json:

"serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
          "browserTarget": "projectname:build",
          "port": 5000
         }

Я використовую angular-cli. Це працювало для мене.


4

в кутовій 2 ++.

Для зміни порту ви можете запустити команду нижче в терміналі:

ng serve --host 0.0.0.0 --port 5000.

2

Хоча у вищезазначених відповідях вже існує чимало дійсних рішень, ось наочний посібник та конкретне рішення для проектів Angular 7 (можливо, також і більш ранніх версій, хоча жодних гарантій) за допомогою коду Visual Studio. Знайдіть schema.json в каталогах, як показано на дереві зображень, і змініть ціле число під port -> за замовчуванням для постійної зміни порту в браузері.

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


@ s34N Радий почути це. Якщо відповідь допомогла, будь ласка, не забудьте дати резюме за повідомленням, якщо цього ще не зроблено. Дякую, друже.
themightyhulk

2

Перейдіть до angular.jsonфайлу,

Пошук за ключовим словом "служити":

Додати portключове слово, як показано нижче:

 "serve": {
     "builder": "@angular-devkit/build-angular:dev-server",
     "options": {
         "browserTarget": "my-new-angular-app:build",
         "port": 3001
     },
     ...

1

У нас є два способи змінити номер порта за замовчуванням у 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
    },

Не рекомендується змінювати файли в node_modules, які можуть бути перезаписані після перевстановлення пакета. Дуже вдале рішення було представлено Саджетараном.
Даніель Сантана

1

Просто біжи

ng serve --портуйте свій порт

Приклад:

ng serve --port 4401



0

Для запуску та відкриття в браузері автоматично використовуйте прапор -openабо просто-o

ng serve -o --port 4200

Примітка: Порт 4200 є довільним. Це може бути будь-який порт на ваш вибір


0

Якщо ви хочете використовувати змінну середовища NodeJS для встановлення значення порту сервера розробок Angular CLI, можливий наступний підхід:

  • створити сценарій NodeJS, який матиме доступ до змінної середовища (скажімо, DEV_SERVER_PORT) і може працювати ng serveзі --portзначенням параметра, взятого з цієї змінної ( child_process може бути нашим другом тут):
const child_process = require('child_process');
const child = child_process.exec(`ng serve --port=${process.env.DEV_SERVER_PORT}`);
child.stdout.on('data', data => console.log(data.toString()));
  • оновіть package.json, щоб забезпечити виконання цього сценарію через npm
  • не забудьте встановити DEV_SERVER_PORTзмінну середовища (це можна зробити через dotenv )

Ось також повний опис цього підходу: Як змінити порт Angular CLI Server Server через .env .


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.