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



¿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.


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
    }
  }

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).


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


¿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

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


¿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.


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"



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


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)


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
                     }
                }     
            }     
    }
}  

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;


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


4

Ejecute el siguiente comando para otro que no sea 4200

ng serve --port 4500

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í.


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.

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í


@ 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
     },
     ...

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
    },

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


1

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

ng serve --port ABCD

Por ejemplo

ng serve --port 6300

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.


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 .


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.