将Docker导向本地NPM软件包时无法完成npm安装

我无法在任何地方find这个问题的答案,所以我希望这里有人可能遇到类似的问题。

我正试着装一个NodeJS应用程序,但在RUN npm install期间遇到这个错误:

npm ERR! 无法从“packages / example-package”进行安装,因为它不包含package.json文件

有问题的软件包在本应用程序的package.json中被列为本地依赖项:

 "dependencies": { "@example-name/example-package": "file:../example-package" }, 

使用这些本地文件path,在npm install之外运行npm install是没有问题的。

我已经尝试通过Dockerfile将包package.json文件复制到容器中,如下所示:

 COPY ./packages/example-package/package.json ./packages/example-package 

由此产生的错误是:

npm ERR! 无法安装“packages / example-packages”,因为它不是一个目录,也不是以.tgz,.tar.gz或.tar结尾的文件

我不知道该从哪里出发! 有什么build议么?

你最终得到一个名为./packages/example-package的文件,其中包含了package.json的内容,而不是一个目录。

你可以通过临时添加一个文件/目录到你的DockerfileDockerfile

 RUN cat ./packages/example-package 

使用目标path末尾的/来使其成为目录或指定文件的完整path。

 COPY ./packages/example-package/package.json ./packages/example-package/ COPY ./packages/example-package/package.json ./packages/example-package/package.json