我正在尝试使用 Nodemon 自动重新加载我的服务器,因此,每当我对 JSON 或 JS 文件进行更改时,都会刷新我的浏览器。
我的 Web 服务器位于目录 1 中,我的内容以及一些 JS、JSON、Angular 和 HTML 文件位于目录 2 中,以便于分离。
我安装了 Nodemon,因为我在某处看到它会在位置 1(Web 服务器)中的 app.js 文件的目录发生更改时自动重新加载服务器。
当我对内容目录中的 JSON 文件进行更改时,终端中的日志表明 Nodemon 正在自动重新加载服务器,但是当我刷新浏览器时,更改不会反映,我必须手动重新启动服务器才能看到他们。
我在我的网络服务器目录中创建了一个nodemon.json文件,这似乎也没有解决我的问题:
{
"restartable": "rs",
"ignore": [
".git",
"node_modules/**/node_modules"
],
"verbose": true,
"watch": [
"/Users/shaned/repos/backend/server", //list of files, you want to watch for changes
"/Users/shaned/repos/frontend/content"
],
"ext": "js json html"
}
此外,一段时间后我收到此错误:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
这就是我在 CLI 中运行服务器的方式:
NODE_PATH=$SERVER nodemon $SERVER/backend/app.js --conf $TEST_ROOT/default.conf --test:geoip:code ""
该网站目前在 Angular 上运行,Node v10.24.1 和 NPM v6.14.12。我也在 MacOS 上工作,所以如果有替代包或解决方案,我愿意接受建议。
在安装nodemon时我没有意识到我实际上是在node v8上,这给了我一些错误。
切换到 v10 并使用以下更新的 cmd 重新安装 nodemon 解决了我的问题:
NODE_PATH=$SERVER nodemon $SERVER/Backend/app.js -w /Frontend/content -e "js,json,html" --signal SIGTERM /Backend --conf $TEST_ROOT/default.conf --test:geoip:code ""