我尝试了express-livereload
,但它只是重新加载了视图文件。
我应该使用其他工具,还是可以配置这个工具来监视运行服务器的index.js
文件?
我读到的选项与node-livereload
相同,观看文件的默认选项包括.js
个文件。
您使用简单配置知道的任何网址?
我的主要问题是如何为Express.js设置良好的开发环境,我想在发出请求时检查变量,每次在路由中进行更改都会很难重启。
PS我在服务器处理请求时尝试node-inspector
来检查变量,但似乎node-inspector
不适用于此,对吗?
答案 0 :(得分:59)
答案 1 :(得分:3)
我使用express.js,通常是通过
启动服务器npm start
安装了Nodemon,我使用
nodemon --exec npm start
注意:nodemon app.js
不会在这里工作,
因为express.js使用start
脚本
答案 2 :(得分:2)
您可以使用“ livereload”,“ connect-livereload”和“ nodemon”将前端和后端更改实时重新加载到浏览器。而且,这种方式您不需要Gulp或Grunt。他们如何一起工作:
livereload
打开一个高端口,并将任何更改的文件通知浏览器connect-livereload
猴子用连接到此高端口的JavaScript代码片段修补了每个投放的HTML页面nodemon
在任何更改的后端文件上重新启动服务器在Express中设置实时重载
将Express设置为在nodemon
引起的重启期间启动livereload服务器以监视公共目录并ping通浏览器:
const livereload = require("livereload");
const connectLivereload = require("connect-livereload");
// open livereload high port and start to watch public directory for changes
const liveReloadServer = livereload.createServer();
liveReloadServer.watch(path.join(__dirname, 'public'));
// ping browser on Express boot, once browser has reconnected and handshaken
liveReloadServer.server.once("connection", () => {
setTimeout(() => {
liveReloadServer.refresh("/");
}, 100);
});
const app = express();
// monkey patch every served HTML so they know of changes
app.use(connectLivereload());
使用Nodemon启动Express
例如,通过运行npm run watch
,使用nodemon启动服务器,并使用专用监视脚本启动它。
这里的关键点是忽略livereload已经监视的公共目录。您还可以配置带有非默认扩展名的文件,例如pug和mustache,以进行监视。
"scripts": {
"start": "node ./bin/www",
"watch": "nodemon --ext js,pug --ignore public"
},
您可以在"Refresh front and backend changes to browser with Express, LiveReload and Nodemon."
中阅读更长的解释