Używając angular-cli z ng serve
poleceniem, w jaki sposób mogę określić domyślny port, aby nie trzeba było za --port
każdym razem ręcznie przekazywać flagi?
Chciałbym zmienić domyślny port 4200.
źródło
Używając angular-cli z ng serve
poleceniem, w jaki sposób mogę określić domyślny port, aby nie trzeba było za --port
każdym razem ręcznie przekazywać flagi?
Chciałbym zmienić domyślny port 4200.
Aktualizacja dla @ angular / cli @ 9.x: i powyżej
W angular.json
możesz określić port na "projekt"
"projects": {
"my-cool-project": {
... rest of project config omitted
"architect": {
"serve": {
"options": {
"port": 1337
}
}
}
}
}
Wszystkie dostępne opcje:
https://angular.io/guide/workspace-config#project-tool-configuration-options
Alternatywnie możesz określić port za każdym razem, gdy uruchamiasz ng usługi w następujący sposób:
ng serve --port 1337
Przy takim podejściu możesz chcieć umieścić to w skrypcie w pliku package.json, aby ułatwić uruchamianie za każdym razem / udostępnianie konfiguracji innym członkom zespołu:
"scripts": {
"start": "ng serve --port 1337"
}
Dziedzictwo:
Aktualizacja dla @ angular / cli final:
Wewnątrz angular-cli.json
możesz określić port w domyślnych:
"defaults": {
"serve": {
"port": 1337
}
}
Starsza wersja:
Testowano w [email protected]
Serwer angular-cli
pochodzi z ember-cli
projektu. Aby skonfigurować serwer, utwórz .ember-cli
plik w katalogu głównym projektu. Dodaj tam swoją konfigurację JSON:
{
"port": 1337
}
Zrestartuj serwer i będzie działał na tym porcie.
Tutaj określono więcej opcji: http://ember-cli.com/#runtime-configuration
{
"skipGit" : true,
"port" : 999,
"host" : "0.1.0.1",
"liveReload" : true,
"environment" : "mock-development",
"checkForUpdates" : false
}
W Angular 2 [email protected],
Aby uruchomić nowy projekt na innym porcie, jednym ze sposobów jest określenie portu podczas wykonywania polecenia ng serv.
lub w inny sposób możesz edytować część skryptów pliku package.json i dołączyć port do zmiennej startowej, jak wspomniałem poniżej, a następnie po prostu uruchomić "npm start"
ten sposób jest dużo lepszy, gdy nie musisz za każdym razem jawnie definiować portu.
źródło
Zamiast tego użyj skryptów npm ... Edytuj plik package.json i dodaj polecenie do sekcji skryptów.
Następnie po prostu wykonaj
npm start
źródło
Możesz teraz określić port w pliku .angular-cli.json w ustawieniach domyślnych:
Przetestowano w Angular-CLI v1.0.6
źródło
Dla @ angular / cli v6.2.1
Plik konfiguracyjny projektu
angular.json
może obsługiwać wiele projektów (obszarów roboczych), które mogą być obsługiwane indywidualnie.ng config projects.my-test-project.targets.serve.options.port 4201
Gdzie
my-test-project
część to nazwa projektu, którą ustawiłeś za pomocąng new
polecenia, tak jak tutaj:Dziedzictwo:
Zwykle używam
ng set
polecenia, aby zmienić ustawienia Angular CLI na poziomie projektu.Zmienia zmianę .angular.cli.json i dodaje ustawienia portu, jak wspomniano wcześniej .
Po tej zmianie możesz po prostu używać
ng serve
i zamierzasz używać preferowanego portu bez konieczności określania go za każdym razem.źródło
Jeśli chodzi o Angular CLI: 7.1.4 , istnieją dwa typowe sposoby zmiany domyślnego portu .
Nr 1
W
angular.json
, dodaj--port
opcjęserve
części i użyj,ng serve
aby uruchomić serwer.Nr 2
W
package.json
, dodaj--port
opcjęng serve
i użyj,npm start
aby uruchomić serwer.źródło
Odpowiedź udzielona przez elwyn jest prawidłowa. Ale powinieneś także zaktualizować konfigurację kątomierza dla e2e.
W angular.json,
W e2e / protractor.conf.js
źródło
Może zaistnieć sytuacja, w której będziesz chciał użyć zmiennej środowiskowej NodeJS do określenia portu serwera deweloperskiego Angular CLI. Jednym z możliwych rozwiązań jest przeniesienie CLI serwera dev działa na skrypcie oddzielne NodeJS, który odczyta wartość portu (np .env pliku) i używać go wykonując
ng serve
zport
parametrem:// run-env.js const dotenv = require('dotenv'); const child_process = require('child_process'); const config = dotenv.config() const DEV_SERVER_PORT = process.env.DEV_SERVER_PORT || 4200; const child = child_process.exec(`ng serve --port=${DEV_SERVER_PORT}`); child.stdout.on('data', data => console.log(data.toString()));
Następnie możesz a) uruchomić ten skrypt bezpośrednio przez
node run-env
, b) uruchomić go przez npm, na przykład aktualizując plik package.jsonrun-env.js
powinien być zaangażowany w repozytorium, a.env
nie powinien. Więcej szczegółów na temat tego podejścia można znaleźć w tym poście: Jak zmienić port serwera deweloperskiego Angular CLI przez .env .źródło