node.js - Nodemon 无法在 Docker 上使用 package.json 中的 npm 脚本
问题描述
我在 Docker 上使用 NodeJS 和 Nodemon。当我尝试直接在 docker compose 文件中使用nodemon命令运行我的 NodeJS 应用程序时,它会运行。
像这样(工作):[ docker-compose ]
command: nodemon source/index.js
但是当我使用 package.json 中的脚本时,它不起作用
像这样(不工作):[ docker-compose ]
command: npm run dev
我的 package.json 文件在哪里
"scripts": {
"start": "node source/index.js",
"dev": "nodemon source/index.js"
}
我尝试了不同的东西,当我只是在没有 nodemon 的情况下运行启动脚本时,它可以工作
像这样(工作):[ docker-compose ]
command: npm run start
但是,当我尝试在其中再次使用带有nodemon命令的dev时,它不起作用。容器不会启动。我也尝试了以下方法,它也有效
像这样(工作):[ docker-compose ]
command: nodemon --exec npm start
我还是不明白,为什么nodemon命令在脚本开发中不起作用
我在 Swarm 模式下使用 Docker
这是我的两个文件
码头工人撰写
version: '3.7'
services:
node-service:
image: node-img:1.0
ports:
- 4000:4000
working_dir: "/node-dir"
volumes:
- ./node-dir/source:/node-dir/source
networks:
- ness-net
command: npm run dev
networks:
ness-net:
包.json
{
"name": "node-pkg",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node source/index.js",
"dev": "nodemon source/index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^1.19.4"
}
}
解决方案
只需添加“。” 像这样在你的 package.json 中定义路径
"scripts": {
"start": "node ./source/index.js",
"dev": "nodemon ./source/index.js"
}
推荐阅读
- vue.js - 在声明的道具上出现意外的 vue 警告
- http - 如何发出安全的 GET 请求?
- xcode - 在 iOS 14 的 SwiftUI 中右对齐 .bottomBar ToolbarItem
- slack - 关闭存档的 Slack 频道是什么意思?
- java - 使用 JDA 制作的 Discord 机器人正在删除不正确的消息
- c - 使用指针将二维数组传递给函数
- python - python 3.7 pygame错误“没有响应”使用工作
- python - 为什么尝试显示图像时出现属性错误(PIL 对象)
- c++ - C ++将磁盘位置添加到文本文件
- firebase - 在 Firebase 实时数据库规则中,您如何为具有特定子值的用户授予写入权限?