serve cli networking angular angular-cli

networking - cli - ng serve--host



¿Cómo probar una aplicación creada con el servicio de CLI Angular desde otro dispositivo? (5)

Tengo una aplicación generada con Angular CLI desde cero. Versión CLI angular-cli: 1.0.0-beta.11-webpack.2

Estoy intentando probarlo desde mi teléfono inteligente pero se me niega la conexión .

Entonces, ejecuto ng serve en mi computadora portátil e intento acceder a la aplicación:

  • Desde el portátil, usando localhost : Works
  • Desde el portátil, usando IP: Conexión rechazada.
  • Desde el teléfono inteligente, usando IP: Conexión rechazada

Esto solía funcionar con la versión anterior, SystemJS de CLI. He comprobado que no tengo un cortafuegos en funcionamiento.

¿Cómo podría arreglar o depurar este error?

Estoy usando una Mac.



En package.json

"start": "ng serve --host 0.0.0.0 --port 4200 --disable-host-check ",

Sin embargo, --disable-host-check sería un riesgo para la seguridad y necesitará "@angular/cli": "^1.1.0-rc.2" ya que esta "@angular/cli": "^1.1.0-rc.2" apareció en la versión 1.1


Quizás esto pueda ser útil (una versión un poco automatizada de la respuesta de @Captain Whippet):

dev-server.js:

const os = require(''os''); const { spawn } = require(''child_process''); function getLocalIp(ipMatchArr) { const networkInterfaces = os.networkInterfaces(); let matchingIps = Object.keys(networkInterfaces).reduce((arr, name) => { const matchingInterface = networkInterfaces[name].find(iface => iface.family === ''IPv4'' && ipMatchArr.find(match => iface.address.indexOf(match) > -1)); if (matchingInterface) arr.push(matchingInterface.address); return arr; }, []); if (matchingIps.length) { return matchingIps[0]; } else { throw(`Error. Unable to find ip to use as public host: ipMatches=[''${ipMatchArr.join("'', ''")}'']`); } } function launchDevServer(address) { const port = process.env.port || 4200; const publicHostname = address + ":" + port; console.log(`[[[ Access your NG LIVE DEV server on /x1b[33m ${publicHostname} /x1b[0m ]]]`); spawn( "ng serve" , [ "--host 0.0.0.0" , `--public ${publicHostname}` ] , { stdio: ''inherit'', shell: true } ); } /* execute */ launchDevServer(getLocalIp([''192.168.1.'', ''192.168.0.'']));

paquete.json:

"scripts": { "start": "node dev-server.js" }

luego ejecuta "npm start"

Luego puede abrir su aplicación en cualquier dispositivo en su red local a través de una dirección impresa en amarillo.

@ angular / cli: 1.3.2, nodo: 6.9.5

probado en Mac y Windows



tienes que encontrar en la carpeta node_modules angular cli todas las ocurrencias de localhost y reemplazar (una en particular, dependiendo de tu versión de angular-cli) con 0.0.0.0.

entonces en package.json ponemos ng servicio --host 0.0.0.0

En mi caso el archivo es comandos / serve.js.