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.