我已经用谷歌搜索到这个了。我看到其他人也有同样的问题,我已经尝试过他们的解决方案,但它对我不起作用。简而言之,问题是我正在运行一个带有节点应用程序的容器。我使用nodemon“实时”查看代码的更改,我可以看到代码的更改正在被检测到,因为每次我保存代码中的更改时控制台都会这样说:
仪表板应用程序 | [nodemon] 由于更改而重新启动... 仪表板应用程序 | [nodemon] 开始
node app.js
仪表板应用程序 |服务器正在 http://localhost:3000 上运行
这是我的代码。让我们从应用程序的 docker-compose.yml 开始:
dashboard-app:
container_name: dashboard-app
build: .
ports:
- "3000:3000"
environment:
- CHOKIDAR_USEPOLLING=true
- WATCHPACK_POLLING=true
volumes:
- .:/usr/src/app # Mount your project directory correctly
- /usr/src/app/node_modules
command: nodemon -L app.js
networks:
- my-network
restart: always
比我的 Dockerfile:
FROM node:16
# Set working directory
WORKDIR /usr/src/app
# Copy package.json and package-lock.json
COPY package*.json ./
# Install all dependencies
RUN npm install
# Copy all other files
COPY . .
# Install nodemon globally
RUN npm install -g nodemon
# Expose port 3000
EXPOSE 3000
# Command to run nodemon
CMD ["npm", "start"]
和我的 package.json:
{
"name": "my-node-dashboard",
"version": "1.0.0",
"description": "A dashboard for business tools and stats",
"main": "app.js",
"scripts": {
"start": "nodemon -L app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.18.2"
},
"devDependencies": {
"nodemon": "^2.0.22"
}
}
我相信这就是影响这个特定问题的一切。 有人看到任何错误吗?或者有解决办法吗?
此问题的其他解决方案主要围绕使用nodemon命令中的-L标签。 和/或添加环境 chokidar_usepolling=true。这对我来说没有用。
考虑添加
"nodemonConfig": {
"legacyWatch": true
}
到你的package.json