2017-08-10 42 views
1

這是我可以運行我的服務器的NodeJS,我需要liverealord我的服務器當我做在前端開發我如何添加實時重裝我的NodeJS服務器

"start": "node server.js" 
+0

Browserreload和nodemon可以用於這兩個 –

+0

如何將它們集成到我的代碼中,我需要僅修改package.json文件或將一些代碼添加到服務器? –

+0

不需要向服務器添加任何代碼。只需使用nodemon來運行服務器 –

回答

3

更改代碼第一:

npm install -g nodemon 

下一個腳本行添加到您的package.json

"live": "nodemon server.js" 

現在當你NPM活它會住重裝

詳細內容見https://github.com/remy/nodemon

0

您可以使用nodemon
它會監視您項目的文件並在您更改它們時重新啓動服務器。在您的項目目錄

npm install -g nodemon 

運行它

cd ./my-project 
nodemon 

你也可以將它添加到你的項目的開發依賴,並從NPM使用它:

可以在全局安裝腳本:

npm install --save-dev nodemon 

然後添加一個簡單的腳本來您的package.json

"scripts": { 
    "start": "node server.js", 
    "dev": "nodemon" 
} 

,那麼你可以簡單地運行下面的命令:

npm run dev 
1
npm install browser-refresh -g 

,並添加你的主要JS

if (process.send) { 
      process.send('online'); 
     } 

例如

app.listen(port, function() { 
    console.log('Listening on port %d', port); 

    if (process.send) { 
     process.send('online'); 
    } 
}); 

並在body關閉標記之前添加您的索引頁。

<script src="{process.env.BROWSER_REFRESH_URL}"></script> 

,並開始在服務器上,而不是termial節點server.js

browser-refresh server.js 
1

一個例子,從我的設置:

livereload.js(所以這將是當然的server.js,僅使用與livereload相關的部件,無需更換您的開發服務器)

const path = require('path'); 
const fs = require('fs'); 

const livereload = require('livereload'); 
const lrserver = livereload.createServer(); 

const compiled = path.join(__dirname, "dist"); 
lrserver.watch(compiled); 

const connect = require('connect'); 
const stat = require('serve-static'); 

const server = connect(); 
server.use(stat(compiled)); 

server.listen(3033); 

console.log('Dev server on localhost:3033'); 

它實際上啓動localhost上的兩臺服務器:在:35729上偵聽的livereload服務器和:3033上的靜態文件服務器。

Livereload觀察包含編譯文件(js,css,html)的dist目錄。您需要添加這段代碼到每個HTML頁面重新載入:

<script> 
document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + 
       ':35729/livereload.js?snipver=1"></' + 'script>'); 
</script> 

如果不transpile /編譯/預處理你的JS/CSS/HTML代碼(即您可以直接編輯端上來的文件),然後觀察源代碼目錄並完成。否則,你需要的是手錶的源目錄更改並編譯到由livereload :)

我的package.json的相關部分觀察dist目錄任務:

"scripts": { 
    "build": "npm run build:js && npm run build:css", 
    "prewatch": "node livereload.js &", 
    "watch": "node ./node_modules/watch-run/bin/watch -p './src/**' npm run build", 
    }, 
"devDependencies": { 
    "connect": "^3.6.2", 
    "livereload": "^0.6.2", 
    "serve-static": "^1.12.3", 
    "watch-run": "^1.2.5" 
    } 

$ npm run watch生成項目和啓動livereload +靜態文件服務器。 (爲簡潔起見,省略了build:*任務)。

相關問題