首页 > 解决方案 > npm 中的 127.0.0.1 live-server 无法在任何浏览器中打开。这里有什么问题?

问题描述

在此处输入图像描述

请任何人在我的笔记本电脑上帮助我,当我在安装 -g live-server 后公开输入 live-server 然后显示此文本并且不在浏览器中打开:-

events.js:291
      throw er; // Unhandled 'error' event
      ^

Error: spawn cmd ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:268:19)
    at onErrorNT (internal/child_process.js:468:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:274:12)
    at onErrorNT (internal/child_process.js:468:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'spawn cmd',
  path: 'cmd',
  spawnargs: [ '/c', 'start', '""', '/b', 'http://127.0.0.1:8080' ]

标签: reactjscmdlocalhostnpm-installnpm-live-server

解决方案


我现在有一个类似的问题,不完全相同,但我认为我建议的解决方案会奏效。

但首先,您的问题似乎您的路径中没有全局 node_modules 文件夹。您可以使用echo $PATHfrom cmd 进行检查,并在按一次 windows 按钮后通过搜索“环境变量”进行设置。

即使大多数软件包建议使用 -g 安装它们,这实际上通常也不是最好的,主要是因为您的项目不会是独立的。因此,当您在新机器、生产服务器等上时,您总是需要全局安装您的依赖项......

虽然不必下载一些经常在开发机器上使用的软件包很方便,但在没有 -g 的情况下运行 npm/yarn install 会更安全,然后在克隆项目后多等一分钟(我敢打赌,很多人不同意我的观点那)。

无论如何,live-reload 有一些技巧,我发现它很难使用,除非作为脚本运行。不仅因为这个原因,还因为它在用户的主文件夹中查找 .live-reload.json 配置,并且不能将其指定为参数。

TLDR; 这是我项目中的相关部分,这也应该适用于您:

包.json

{
  scripts:{
    "local": "yarn build && node live-server.js",
    "build"  : "#install other dependencies"
  },
  "devDependencies": {
    "live-server": "^1.2.1"
  }
}

live-server.js

var liveServer = require("live-server");
const path = require('path');

var params = {
    port: 8181, // Set the server port. Defaults to 8080.
    host: "127.0.0.1", // Set the address to bind to. Defaults to 0.0.0.0 or process.env.IP.
    root: path.join(__dirname, '/public'), // Set root directory that's being served. Defaults to cwd.
    open: true, // When false, it won't load your browser by default.
    wait: 100, // Waits for all changes, before reloading. Defaults to 0 sec.
    logLevel: 2, // 0 = errors only, 1 = some, 2 = lots
};
liveServer.start(params);

推荐阅读