- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 Express 应用程序,我正在尝试使用 Windows 10 的 docker 作为开发环境,使用 Nodemon 设置热重载。但是,当我在卷上进行 npm install 时,它似乎不起作用。
使用 powershell,我使用如下所示的卷:
docker build -t node-api .
docker run --rm -it -p 8080:8080 -v "${PWD}:/usr/src/app" node-api
输出此错误:
[nodemon] 1.18.6
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node server/server.js`
internal/modules/cjs/loader.js:605
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:603:15)
at Function.Module._load (internal/modules/cjs/loader.js:529:25)
at Module.require (internal/modules/cjs/loader.js:658:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/usr/src/app/server/server.js:1:79)
at Module._compile (internal/modules/cjs/loader.js:722:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
[nodemon] app crashed - waiting for file changes before starting...
如果我排除 -v 标志并 docker run,那么它会正常启动,但不会检测更改或在文件保存时重新启动。
Dockerfile
FROM node:alpine
#Create app directory
WORKDIR /usr/src/app
#Install nodemon for hot reloading
RUN npm install nodemon -g
#Install app dependencies
#A wildcard is used to ensure both package.json AND package-lock.json are copied
COPY package*.json ./
RUN npm install
#Bundle app source
COPY . .
EXPOSE 8080
CMD [ "nodemon", "-L", "server/server.js" ]
文件夹结构
server/
>server.js
Dockerfile
package.json
最佳答案
问题在于,通过将整个主机 app/
目录挂载为卷,容器内的 app/node_modules/
将被主机的 app/
覆盖,从而丢失所有依赖项。
解决办法是只挂载你需要的源代码文件夹,即
docker run --rm -it -p 8080:8080 -v "${PWD}/server:/usr/src/app/server" node-api
关于node.js - 使用 Windows 10 使用 nodemon 进行 Docker 热重载 Node 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53419922/
nodemon 一直对我有用。我总是使用 nodemon server,它会运行服务器文件并观察更新,然后 Node 会重新启动。但是现在当我这样做时,我在 cmd 中得到了这个(我使用的是 Wind
我有一个在构建后生成 build 文件夹的应用程序。每次,该应用程序都会删除整个 build 文件夹,然后将其与新文件一起添加回来。 我试着观察这个文件夹的变化并做一些事情。 nodemon --wa
我是 NodeJS 方面的初学者。 环境是 Windows 7 64 位。 Node 已安装并正常工作。 NPM 也运行良好。 Nodemon 已安装。 (在应用程序中以及在全局范围内) 现在当我运行
我有一个正在开发的 Node.js 服务器,并且我正在使用 nodemon 在源代码更改时重新启动服务器。 该服务器依赖于我也在开发的另一个模块,因此如果对该模块的更改也重新启动服务器会很好。 最好的
我想使用 nodemon 来监控我的 node.js 应用程序,然后我执行下一行命令: npm install -g nodemon 或 npm install nodemon -g 当我移动到我的应
我使用express-generator创建项目框架,并使用jade、sass代替ejs和stylus,然后我使用concurrent组合watch和nodemon,如the doc ,但是当我运行
我正在尝试设置一个 serve 任务来执行以下操作: 调用watch任务来监视任何源更改。 (监视任务调用 build 任务,将应用构建到“build”文件夹中) 使用 Nodemon ( gulp-
我正在关注VUE tutorial在 Mac 上(在 youtube 中显示)。 在我的 src/app.js 中,我只有 console.log('hi'); 如 YouTube 视频所示,pack
我目前正在为此学习 express.js 我已经在全局范围内安装了 express 和 nodemon 所以每当我想运行命令 nodemon express1.js 时出现错误,即使我已经在全局范围内
当我在应用程序中运行 nodemon bin/www 时,它运行良好,当我尝试运行 nodemon app 时,它会抛出此错误: '\"node .\bin\www\"' is not recogni
这是我的 nodemon.json { "watch": ["src/**/*.ts"], "exec": "node out/index.js" } 我通过执行来运行nodemon:
我在运行 El Capitan 的 Mac 上。我有 Node v5.6.0 和 npm v3.6.0。当我尝试运行 nodemon 时,我得到: -bash: nodemon: command no
我尝试将 nodemon -L (--legacy-watch) 选项设置为 gulp-nodemon 的 nodemon 配置,并在下面使用空字符串值添加它,但它不起作用。谁能帮忙? gul
目前我已经使用命令npm install -g nodemon安装了nodemon。我遇到了权限问题,所以我使用 sudo npm install -g nodemon 执行命令,然后我就做到了。但是
我尝试在 Visual Studio 代码上使用 nodemon 调试 nodejs 应用程序,以便每次保存代码时都可以自动重新启动调试器。 但是,当我在 Visual Studio 代码上运行调试器
当我尝试使用 nodemon 执行 server.js 文件时,它显示错误。 C:\Users\gourav\WebstormProjects\Node.js-Register-Login-App-m
使用 Mac 通过 Node.js 在 Heroku 上部署 我的问题: State changed from starting to crashed && sh: 1: nodemon: not
我想从 NodeMon 的监控中排除一些特定文件。我怎样才能做到这一点? 我现有的配置: nodemon: { all: { script: 'app.js',
我有一个网络应用程序。我想与它一起使用nodemon。要启动我的应用程序,需要运行'node ./bin/www',但nodemon默认运行另一个文件。我的网络应用程序不可用。 当我输入cmd时 no
我正在使用 nodemon 重新加载我的服务器,但是当我保存文件时它会抛出一个错误, 它说该端口已被另一个进程使用。 这是错误: events.js:174 throw er; // Un
我是一名优秀的程序员,十分优秀!