【问题标题】:npm live-server not auto-reloadingnpm live-server 不会自动重新加载
【发布时间】:2018-12-23 02:05:11
【问题描述】:

我尝试在实时服务器上工作,使用以下命令安装了一个名为 live-server 的节点包:npm install -g live-server

它工作正常,安装成功并通过live-server 命令运行live-server

每当我更改代码并保存在代码编辑器上时,浏览器都不会自动刷新。

这是我的package.json 文件:

"name": "nodejs",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Abul Khoyer",
  "license": "ISC"
}

【问题讨论】:

  • 你添加了.live-server.json文件吗?

标签: node.js npm package.json


【解决方案1】:

我遇到了与您相同的问题,并通过确保 .html 文件的格式正确来设法使其正常工作。 IE。像这样:

<!DOCTYPE html>
<html>
<body>
    <h1>Script tester!</h1>
    <script type="text/javascript" src="script.js"></script>
</body>
</html>

【讨论】:

  • 此外,您创建的任何元素也应遵守“正确”的 html 格式。它似乎不喜欢像

    这样的自闭合标签。
【解决方案2】:

您需要添加以下代码: 对于

从节点使用

例子:

var liveServer = require("live-server");

var params = {
    port: 8181, // 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: "/public", // 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 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);

或者你可以添加一个文件 .live-server.json

如果存在,它将被加载并用作命令行上实时服务器的默认选项。

更多详情见:https://www.npmjs.com/package/live-server

【讨论】:

  • 谢谢,但我已经尝试过这种方式。还是不行。
  • app.js 为空白。只有console.log("hello world");,因为我只是在测试。
【解决方案3】:

使用 NPM 安装一个名为 PM2 的包。

NPM 是一个包管理器,您将使用它来安装框架和库以与您的 Node.js 应用程序一起使用。 NPM 与 Node.js 一起安装。 PM2 是一个可爱的小工具,它将为您解决两个问题:

  1. 如果应用程序崩溃,它将通过重新启动应用程序来保持您的站点正常运行。这些崩溃不应该发生,但很高兴知道 PM2 支持您。 (有些人可能知道 Forever.js,这是另一个用于保持基于节点的站点运行的工具 - 我想您会发现 PM2 可以提供很多东西。)

  2. 每次重新启动服务器时,它都会通过将节点应用程序作为服务重新启动来帮助您。有些用户知道其他方法可以做到这一点,但 pm2 使它更容易,并且增加了一些灵活性。

在命令行输入以下命令来安装 PM2:

sudo npm install pm2 -g

您可以按照此行来设置 Nodejs 生产环境: https://www.digitalocean.com/community/tutorials/how-to-use-pm2-to-setup-a-node-js-production-environment-on-an-ubuntu-vps

【讨论】:

    【解决方案4】:

    如果您像我一样在 Windows 10 上工作,您的目录名称很可能像这样过长:

    C:\Users\Del\Documents\Web Development Works\JS 练习[书籍]\学习 JavaScript\lj

    尝试将您的目录移动到桌面,这样它会更短,如下所示:

    C:\Users\Del\Desktop\lj

    在我的情况下,在我将目录移动到桌面后,实时服务器的自动重新加载工作

    【讨论】:

    • 错了。因为当您将项目发布到主机时,没有 Desktop 位置。
    【解决方案5】:

    检查 html 文件中的脚本标签。 不要将您的标签关闭为像这样的空元素 。 这阻止了我的浏览器自动加载页面。 正确关闭它 .

    【讨论】:

      【解决方案6】:

      我和你有同样的问题,我通过检查两个项目来解决:

      首先,检查 HTML 文件中的脚本标签!

          &lt;script type="text/javascript" src="script.js"&gt;&lt;/script&gt;

      如果您尝试第一步但它再次不起作用,请在“桌面”中移动(复制/剪切)您的项目文件,关闭浏览器、VScode 工作区(command+K+F)和 VScode(command+Q) ,然后再试一次!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-09
        • 2017-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-22
        • 2014-07-17
        相关资源
        最近更新 更多