docker 中的 npm 更新失败
Posted
技术标签:
【中文标题】docker 中的 npm 更新失败【英文标题】:npm update failed in docker 【发布时间】:2017-11-02 12:28:37 【问题描述】:我无法在 docker by
中更新 npm 包 xxxnpm update -g
或
npm install -g xxx
更新后无法执行xxx,抛出
Error: Cannot find module 'semver'
所以我不得不
npm uninstall -g xxx
npm install -g xxx
每次我想更新软件包时都要重新安装。 如何在 docker 中更新 npm 包?
【问题讨论】:
你在windows(或)linux的哪个环境下遇到这个问题? @DavidR Debian8 64bit 猜猜,您需要使用rm
命令完全删除您的node_modules
目录,并像之前尝试的那样进行完全卸载。
或者,您可以使用npm rm
命令删除您的node_modules
目录。
每次我想更新我的 npm 包时我都会这样做吗?如果是,那根本没有解决问题。
【参考方案1】:
如何在 docker 中更新 npm 包?
您重新构建映像并使用映像中内置的更新重新部署它。
docker 容器不是虚拟机——它不应该要求永远存在。一个 docker 容器应该很容易被销毁和重新创建。
当您需要更新代码/库时,应使用映像中的更新重新构建映像,然后部署新映像,停止旧容器并基于新映像启动新容器。
【讨论】:
我在退出临时 docker 容器之前收到错误“找不到模块 xxx”。如果我提交或导出容器,问题一定仍然存在。 除非你想快速迭代,一种方法是将你的代码挂载到一个容器中(例如基于node:latest),运行bash,这样你就可以非常快速地进行代码测试。现在 npm5 已损坏(遇到同样的问题以及其他问题,请访问 npm 问题页面...)以上是关于docker 中的 npm 更新失败的主要内容,如果未能解决你的问题,请参考以下文章
NPM 安装在 docker 容器中失败 - npm WARN tar ENOENT:没有这样的文件或目录
npm install git+ssh 在 docker (node16) 中失败