我正在 docker 内开发一个 vite-typescript-express-ssr-react 项目。 (我正在将根目录挂载到docker容器中)
我使用 vite hmr,它对于前端开发工作正常,但是当我使用 nodemon 启动项目进行后端开发时,nodemon 不会重新启动服务器
我正在使用 dev:server 脚本来启动后端开发。
"dev:server": "npx nodemon",
"dev:client": "npm run build:client && vite --config vite.config.ts dev --host 0.0.0.0",
"build:client": "vite build --outDir dist/client --ssrManifest",
这是我的nodemon.json
{
"watch": ["src", "server.ts"],
"ext": "ts,tsx",
"exec": "tsx server.ts"
}
当从 dev:server 开始时,我在控制台中看到了这个,但它在保存时没有重新启动:
app | > [email protected] dev:server
app | > npx nodemon
app |
app |
app | [nodemon] 3.0.2
app | [nodemon] to restart at any time, enter `rs`
app | [nodemon] watching path(s): src/**/* server.ts
app | [nodemon] watching extensions: ts,tsx
app | [nodemon] starting `tsx server.ts`
我的项目文件结构如下所示:
project-root/
|-- src/
| |-- client/
| | |-- context/
| | |-- hooks/
| | |-- pages/
| | |-- router/
| | |-- ...
| |
| |-- server/
| | |-- config/
| | |-- controller/
| | |-- models/
| | |-- api/
| | |-- ...
| |
| |-- public/
|
|-- vite.config.ts
|-- tsconfig.json
|-- package.json
|-- server.ts
|-- nodemon.json
|-- Dockerfile
|-- docker-compose.yml
|-- ...
好吧,总是一样的,一旦我决定在 stackoverflow 上提问,我马上就明白了。
我将以下代码添加到我的nodemon.json 文件中
"legacyWatch": true,
在发布之前应该将docs标红,抱歉造成噪音......
应用程序未重新启动
在一些网络环境中(比如容器 运行 nodemon 读取已安装的驱动器),您 将需要使用来启用 Chokidar 的 投票。legacyWatch: true
通过 CLI,使用
或简称--legacy-watch
:-L
nodemon -L
虽然这应该是最后的手段,因为它会轮询 它能找到的每个文件。