簡體   English   中英

nodemon和live-server有什么區別?

[英]What is the difference between nodemon and live-server?

有人可以幫我理解npm包nodemon和live-server之間的區別,因為他們重新加載服務器並監聽更改?

它們有兩個不同的用途。

當檢測到目錄中的文件更改時,Nodemon將重新啟動Node應用程序

另一方面,實時服務器會在檢測到任何支持的文件類型(例如HTML,JS,CSS)的更改時刷新瀏覽器。 當您在本地工作時,它還會啟用Ajax請求 - 這些請求通常不適用於file://協議。


Nodemon

為了看到這一點,讓我們創建一個簡單的節點服務器。

首先,創建一個my-app目錄,更改為它,創建一個package.json文件和一個名為server.js的文件。 在'nix系統上,像這樣:

mkdir my-app
cd my-app
npm init -y
touch server.js

然后在server.js添加:

const http = require('http');

const server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello, World!\n");
});

server.listen(8000);
console.log("Server running at http://127.0.0.1:8000/");

現在,如果您運行node server.js ,並在瀏覽器中訪問http://127.0.0.1:8000/ ,您將看到“Hello,World!” 信息。

如果您編輯server.js ,例如將消息更改為“Goodbye,World!”,然后刷新瀏覽器,您仍會看到原始的“Hello,World!” 信息。

要查看更改,您必須停止應用程序(使用Ctrl + C ),然后重新啟動它(使用node server.js ),然后刷新瀏覽器。

nodemon的作用是包裝Node應用程序以自動執行手動停止和重新啟動應用程序的步驟。

將其安裝為dev依賴項:

npm i -D nodemon

並啟動您的應用程序:

./node_modules/.bin/nodemon server.js

現在,當您對server.js進行更改時,nodemon將自動檢測到這一點,這意味着您需要刷新瀏覽器才能看到它們 - 您可以避免停止/啟動應用程序。


直播服務器

另一方面,live-server的功能完全不同。 您應該全局安裝它:

npm install -g live-server

然后當你在目錄中啟動它時,它會嘗試提供一個index.html文件(如果存在)(否則它將顯示目錄的內容)。

保持在my-app目錄中,創建一個index.html文件:

touch index.html

然后添加以下內容:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Test</title>
    <style></style>
  </head>
  <body>
    <p>Hello, World!</p>
    <script></script>
  </body>
</html>

通過在終端窗口中輸入live-server啟動實時服務器,並在瀏覽器中打開http://127.0.0.1:8080

現在嘗試更改HTML文件中的消息,或添加一些樣式或一些JavaScript。 當您進行任何這些更改並保存時,瀏覽器將刷新,您將在頁面中看到這些更改。

這本身非常實用,但手動刷新瀏覽器無法做到。 當這樣的包變得必不可少的時候,當你發出Ajax請求時,包括一個不使用協議的文件,或者做任何其他可能被瀏覽器的安全策略阻止的事情,如果你要直接打開一個HTML文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM