Cómo cambiar el puerto angular de 4200 a cualquier otro

256

Quiero usar 5000 en lugar de 4200 ..

Lo que he intentado es haber creado un archivo con el nombre raíz ember-cliy poner JSON de acuerdo con el código a continuación:

{
   "port": 5000
}

Pero mi aplicación todavía se ejecuta en 4200 en lugar de 5000

Ashutosh Jha
fuente
2
Posible duplicado stackoverflow.com/questions/37154813/…
Zac Grierson el
¿También reiniciaste el servidor?
kris
sí @kristjanreinhold
Ashutosh Jha

Respuestas:

428

La solución que funcionó para mí fue

ng serve --port 4401    

(Puede cambiar 4401 al número que desee)

Luego inicie el navegador -> http: // localhost: 4401 /

Básicamente, tenía dos aplicaciones y, con la ayuda del enfoque anterior, ahora puedo ejecutar ambas simultáneamente en mi entorno de desarrollo.

David
fuente
La opción '--port 4201' no está registrada con el comando serve
holms
66
nota al margen para otros: no lo hagas npm start --port 4401porque npm startno parece ejecutar el --port
Jordec
1
Consulte esta respuesta también stackoverflow.com/a/52345586/3209545
callee.args
solo una adición, puede al mismo tiempo abrir la aplicación servida en una nueva pestaña del navegador agregando ng serve --port 4401 --open
briancollins081
114

Puede cambiar el puerto de su aplicación ingresando el siguiente comando,

ng serve --port 4200

Además, para una configuración permanente, puede cambiar el puerto editando el archivo angular-cli.json

 "defaults": {
    "serve": {
      "port": 8080
    }
  }
ganesh kalje
fuente
2
En las versiones más recientes, debe usar ng serve --port 8080 (no ":", espacio en blanco).
Julian L.
Si esta es la última configuración de "valores predeterminados", debe deshacerse de la coma final
Oswaldo Salazar
1
Esto ha cambiado en las versiones recientes de la CLI; consulte mi respuesta para obtener más detalles.
Nathan Friend
98

Parece que las cosas han cambiado en versiones recientes de la CLI (estoy usando 6.0.1). Pude cambiar el puerto predeterminado utilizado ng serveal agregar una portopción a mi proyecto angular.json:

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

(Solo las propiedades relevantes se muestran en este ejemplo).

Nathan Friend
fuente
Y también quiero cambiar de host
Kunvar Singh
esta es realmente la respuesta permanente correcta
WtFudgE
59

Cambiar nodel_modules/angular-cli/commands/server.jses una mala idea, ya que se actualizará cuando instales una nueva versión de angular-cli. En su lugar, debe especificar ng serve --port 5000 en de package.jsonesta manera:

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

También puede especificar el host con --host 127.0.0.1

Dhyey
fuente
¿Cómo se inicia la aplicación? ng serve? No parece funcionar cuando reviso el navegador con,localhost:5000
Ashish Ranjan
1
Creo que esta debería ser la respuesta aceptada. Casi para la gente que usa npm startcomo un comando
blobmaster
¿Por qué usar una opción de script para la configuración permanente? Hay un archivo para esto, y esangular.json
Mozgor
59

La ubicación de la configuración del puerto ha cambiado un par de veces.

Si usa CLI angular 1

Cambio angular-cli.json

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

Si usa la última CLI angular

Cambio angular.json

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

Sin cambiar ningún archivo

Ejecuta el comando

ng serve --host 0.0.0.0 --port 5000
arsanyf
fuente
8
Esto debe considerarse como la respuesta correcta, ya que cubre ambas posibilidades: soluciones permanentes o temporales.
Daniel Santana
1
Acepto @Dan
marknt15
En caso de cambios permanentes, ¿sabe si el nuevo puerto debe especificarse en otro lugar en este archivo `angular.json`? Mi servenivel de opción contiene dos elementos con browserTarget, optionsy configurations/production. ¿Debo agregar esta nueva portentrada en ambas o solo en la optionsúnica?
Mozgor
19

Nadie ha actualizado la respuesta para la última CLI angular. Angular CLI

Con latest versionangular-cli en el que se renombró angular-cli.json angular.json, puede cambiar el puerto editando el angular.jsonarchivo que ahora especifica un puerto por"project"

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

Leer más al respecto here

Sajeetharan
fuente
¿Qué pasa con la entrada 'servir / configuraciones / producción' que también contiene una browserTargetentrada, igual que serve / optionsdonde agregamos la nueva port?
Mozgor
1
La mejor respuesta para la última versión de Angular CLI
Dacomis
14

Usualmente uso el ng setcomando para cambiar la configuración de CLI angular para el nivel de proyecto.

ng set defaults.serve.port=4201

Cambia su cambio .angular.cli.jsony agrega la configuración del puerto como se mencionó anteriormente .

Después de este cambio, puede usarlo de manera simple ng servey usará el puerto preferido sin la necesidad de especificarlo cada vez.

csikosjanos
fuente
get / set parece estar en desuso a favor de config en 6.0, por lo que esto ya no funciona.
VanAlbert
10

también puede ingresar el siguiente comando en su cli angular, donde normalmente ingresa npm start

ng serve --host "dirección IP" --port "número de puerto"

Ajitesh Jaiswal
fuente
7

También puedes escribir este comando: ng serve -p 5000

Sara Vaseei
fuente
1
Okay. Es la mano corta Syntex. Genial
Ashutosh Jha
¡Lo había usado en angular 4!
Sara Vaseei
6

ir a este archivo

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

y buscar puerto

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

cambie el valor predeterminado lo que quiera y reinicie el servidor

Sohail Ahmad
fuente
Funciona para mí, solo necesito un aviso para cambiar el archivo mencionado y no el otro, node_modules/@angular/cli/lib/config/schema.json que contiene la misma propiedad.
lingar
5
  • Para permanente:

    Ir a nodel_modules / angular-cli / command / server.js Buscar var defaultPort = process.env.PORT || 4200; y cambie 4200 a cualquier otra cosa que desee.

  • Para ejecutar ahora:

    ng serve --port 4500 (Usted cambia 4500 a cualquier número que desee usar como puerto)

Deepak swain
fuente
1
No creo que cambiar el contenido de un paquete instalado localmente node_modulessea ​​una buena práctica.
Bruno Brant el
5

No se recomienda cambiar en los módulos de nodo, ya que las actualizaciones o la reinstalación pueden eliminar esos cambios. Así que mejor cambiar en cli angular

Angular 9 en angular.json

{
    "projects": {
            "targets": {
                "serve": {
                    "options": {
                         "port": 5000
                     }
                }     
            }     
    }
}  
Shyam
fuente
4

Puede editar el número de puerto predeterminado que está configurado en el archivo serve.js.

El camino será project_direcory/node_modules/angular-cli/commands/serve.js.

Busque esta línea -> var defaultPort = process.env.PORT || 4200;
Reemplace con esta línea ->var defaultPort = process.env.PORT || 5000;

Amruth LS
fuente
44
Si está leyendo esto y está considerando hacerlo ... por favor, nunca edite archivos de dependencia.
emix
4

simplemente corre ng serve --port 5000 --open

Daniel Torres Laserna
fuente
4

Ejecute el siguiente comando para otro que no sea 4200

ng serve --port 4500
Sagar Jadhav
fuente
4

En angular.json:

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

Estoy usando angular-cli. Esto funcionó para mí.

Deepak Singla
fuente
4

en angular 2 ++.

Para cambiar el puerto, puede ejecutar el siguiente comando en la terminal:

ng serve --host 0.0.0.0 --port 5000.
Nitya nand
fuente
2

Aunque ya hay numerosas soluciones válidas en las respuestas anteriores, aquí hay una guía visual y una solución específica para proyectos de Angular 7 (posiblemente también versiones anteriores, aunque no hay garantías) usando Visual Studio Code. Localice el schema.json en los directorios como se muestra en el árbol de imágenes y modifique el número entero en puerto -> predeterminado para un cambio permanente de puerto en el navegador.

ingrese la descripción de la imagen aquí

themightyhulk
fuente
@ s34N Me alegra escuchar eso. Si la respuesta fue de ayuda, recuerde dar un voto positivo en la publicación si aún no lo ha hecho. Gracias amigo.
themightyhulk
2

Ir al angular.jsonarchivo

Busque la palabra clave "serve":

Agregue la portpalabra clave como se muestra a continuación:

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

Tenemos dos formas de cambiar el número de puerto predeterminado en Angular.

Primera forma de comando cli:

ng serve --port 2400 --open

Segunda manera es mediante la configuración de la ubicación: ProjectName\node_modules\@angular-devkit\build-angular\src\dev-server\schema.json.

Hacer cambios en el schema.jsonarchivo.

{
 "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
    },
Satyendra Patel
fuente
No se recomienda cambiar los archivos en node_modules que podrían sobrescribirse después de reinstalar el paquete. Sajeetharan presentó una muy buena solución.
Daniel Santana
1

Solo corre

ng serve --port yourport

Ejemplo:

ng serve --port 4401

Akitha_MJ
fuente
1

El código que funcionó para mí fue el siguiente

ng serve --port ABCD

Por ejemplo

ng serve --port 6300
Albahaca Mahoma
fuente
0

Para ejecutar y abrir en el navegador, use automáticamente la bandera -openo simplemente-o

ng serve -o --port 4200

Nota: El puerto 4200 es arbitrario. Puede ser cualquier puerto de su elección.

Fouad Boukredine
fuente
0

Si desea utilizar la variable de entorno NodeJS para configurar el valor del puerto del servidor de desarrollo Angular CLI, es posible el siguiente enfoque:

  • cree el script NodeJS, que tendrá acceso a la variable de entorno (digamos DEV_SERVER_PORT) y podría ejecutarse ng servecon el --portvalor del parámetro tomado de esa variable (el proceso hijo podría ser nuestro amigo aquí):
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()));
  • actualice package.json para proporcionar este script que se ejecuta a través de npm
  • no olvide configurar DEV_SERVER_PORTla variable de entorno (se puede hacer a través de dotenv )

Aquí también está la descripción completa de este enfoque: Cómo cambiar el puerto del servidor de desarrollo de CLI angular a través de .env .

dhilt
fuente
0

Esto también abrirá automáticamente tu ventana

ng serve -o --port 4801
Rusty Shackleford
fuente