[英]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.