Javascript npm在一个docker映像中安装2个项目
我有一个docker容器,它将两个节点项目合并为一个。项目A是后台项目,项目B是使用npm包写入postgres数据库的postgres后端项目。我在两份单独的回购协议中同时拥有A和B。然后我将它们分别复制到docker图像中,如Dockerfile中的以下内容:Javascript npm在一个docker映像中安装2个项目,javascript,node.js,postgresql,npm,statsd,Javascript,Node.js,Postgresql,Npm,Statsd,我有一个docker容器,它将两个节点项目合并为一个。项目A是后台项目,项目B是使用npm包写入postgres数据库的postgres后端项目。我在两份单独的回购协议中同时拥有A和B。然后我将它们分别复制到docker图像中,如Dockerfile中的以下内容: COPY ./statsd/ /opt/statsd/ COPY ./postgres-backend/ /opt/statsd/postgres-backend/ 然后我将javascript从postgres-backend复制
COPY ./statsd/ /opt/statsd/
COPY ./postgres-backend/ /opt/statsd/postgres-backend/
然后我将javascript从postgres-backend
复制到docker内部的文件夹/opt/statsd/backends/
。在这个阶段,我可以使用自己的package.json规范在/opt/statsd
目录中安装npm
。但是,我的postgres backend
repo有自己的package.json文件,该文件指定了它需要的依赖项(在本例中为pg
)。我尝试切换到/opt/statsd/postgres backend
目录并执行npm安装
。仅安装在子目录中的。当我在/opt/statsd
目录中运行statsd.js
时,它抱怨没有找到模块pg
我如何用2 package.json解决这个项目的问题?问题是你的应用程序依赖于pg包的特定版本。我会找到您需要的版本并运行:
npm install pg@x.x --save
其中x.x是应用程序运行和保存所依赖的版本,以确保在package.json文件中更新依赖项
你只需要告诉你的应用你的应用依赖哪个版本。(基本上).npm安装pg@x.x不起作用???@lopezdp可以,但感觉像是黑客攻击,因为postgres后端的package.json被绕过了。如果将来在postgres后端项目中添加了另一个依赖项,该怎么办?我想知道是否有更好的办法来解决这个问题,那就是你的办法。您必须做的工作是,当新版本开始弃用不再支持的旧功能时,调试并更新与旧库相关的新版本。还要确保在npm命令的末尾添加--save,以确保它保存到项目的应用程序中!如果这个答案能解决你的问题,请告诉我。这不是黑客行为,而是在软件包不断扩展、更新、改进和改进的环境中,您如何使其工作。有时版本有不推荐的功能会破坏你的应用程序。你使用的是像ExpressJS这样的框架吗?