live-server 手机无法访问ip static server的解决办法

1,447 阅读1分钟

一、前言

live-server应该有不少人用,在vscode里对html文件右键就可以启动一个static server,这个server会开启多个进程,包括几个chrome进程和vscode本身的一个进程,共对应一个port(默认5500)。

二、清理server pid

lsof -i tcp:${port}
kill ${pid}

三、启动新服务

清理好之后最好不要用live-server插件在vscode内自带的右键启动了

  1. 建立一个新js文件,如下:
var liveServer = require('live-server');

var params = {
  port: 5500, // Set the server port. Defaults to 8080.
  host: '0.0.0.0', // Set the address to bind to. Defaults to 0.0.0.0 or process.env.IP.
  root: './', // Set root directory that's being served. Defaults to cwd.
  open: false, // When false, it won't load your browser by default.
  // ignore: 'scss,my/templates', // comma-separated string for paths to ignore
  // file: 'index.html', // When set, serve this file (server root relative) for every 404 (useful for single-page applications)
  // wait: 1000, // Waits for all changes, before reloading. Defaults to 0 sec.
  // mount: [['/components', './node_modules']], // Mount a directory to a route.
  // logLevel: 2, // 0 = errors only, 1 = some, 2 = lots
  // middleware: [
  //   function (req, res, next) {
  //     next();
  //   },
  // ], // Takes an array of Connect-compatible middleware that are injected into the server middleware stack
};
liveServer.start(params);
  1. 修改目录下node_modules指向的live-server源码index.js文件,找到listening事件,并做如下修改:
var address = server.address();
// old
// var serveHost = address.address === "0.0.0.0" ? "127.0.0.1" : address.address;
// var openHost = host === "0.0.0.0" ? "127.0.0.1" : host;
// new
var serveHost = "192.168.3.66"; // 本地在局域网下的ip
var openHost = "192.168.3.66";