使用Nodemon和Express Server进行BrowserSync

kwvwclae  于 2023-05-22  发布在  Node.js
关注(0)|答案(2)|浏览(83)

对于我的生活,我不能让浏览器同步和Nodemon很好地运行在我的Express服务器旁边。我试过了我能想到的所有组合。
我的Express服务器运行在端口5000,我可以打开和查看,nodemon运行时的变化,伟大的,但浏览器仍然没有'热刷新'可以这么说。我想为浏览器窗口要么刷新或打开一个新的标签后,nodemon已重新启动服务器。
package.json脚本

"scripts": {
"start": "node app.js",
"dev": "set NODE_ENV=DEV&& nodemon app.js 5000 browser-sync start --proxy localhost:5000 -e * --ignore=node_modules --reload-delay 10 --no-ui --no-notify",
"ui": "node app.js browser-sync start nodemon app.js --port=5001 --proxy=localhost:5000 -e * --ignore=node_modules --reload-delay 10 --no-ui --no-notify",
"ui2": "nodemon start & browser-sync start --proxy 'localhost:5000' -e * --ignore=node_modules"
},

我只想启动我的express服务器,用nodemon监听更改,然后重新启动,然后重新加载浏览器窗口或启动一个新窗口来查看更改。请帮助我了解我错过了什么。

jobtbby3

jobtbby31#

如果有人有同样的问题,啊哈时刻是当我意识到我需要打开第二个终端窗口运行浏览器同步。在package.json中使用下面的脚本现在工作得很好!
首先运行npm run start/dev depending if you want server restarts on changes or not then open a 2nd terminal window and run npm run ui`。在我的例子中,我的app.js在端口8000上启动。
package.json

"scripts": {
    "start": "node app.js",
    "dev": "nodemon -e * app.js",
    "ui": "browser-sync start --proxy localhost:8000 --files=**/*  --ignore=node_modules --reload-delay 10000 --no-ui --no-inject-changes"
  },

app.js - const port = process.env.PORT || '8000';

mec1mxoz

mec1mxoz2#

这可以与模块“npm-run-all”并行运行(npm start),也可以与“concurrently”并行运行(将start:后面的字符串替换为start_b:后面的字符串)。

"scripts": {
    "browsersync": "browser-sync start --proxy localhost:5000 --files 'public,views'",
    "nodemon": "nodemon server.js",
    "start_b": "concurrently --kill-others \"npm run nodemon\" \"npm run browsersync\" ",
    "start": "npm-run-all -p nodemon browsersync"
  },

在我的系统中,我在跟踪.njk文件时遇到了问题,因为浏览器在更改它们后重新加载,但实际上没有更新更改。我不得不使用一个nodemon.json文件来添加文件夹(views/)和扩展名.njk:

{
  "watch": ["server.js", "views/"],
  "ext": "js, css, njk"
}

相关问题