我有一个看起来像这样的纱线工作区项目:
node_modules
packages
shared
test.js
package.json
client
test.js
package.json
server
test.js
package.json
package.json
server.Dockerfile
正如你所看到的,我有一个server.Dockerfile
,它构建了一个服务器的镜像,我可以将它推送到不同的托管服务提供商,比如 Heroku 或 AWS。
我复制packages
并package.json
进入这个容器:
COPY packages packages
COPY package.json .
然后我只安装server
包的依赖项:
RUN cd packages/server && yarn install
现在所有依赖项都在node_modules
文件夹中,接下来我想删除packages
文件夹以从 docker 映像中删除任何不必要的代码(例如客户端代码):
RUN rm -rf packages
这样做的问题是node_modules
文件夹内的所有纱线工作区包只是文件夹的符号链接packages
......所以我无法删除该文件夹。
如何
yarn install
制作纱线工作区包的副本而不是创建符号链接?或者,有没有另一种方法来删除所有未使用的代码(例如客户端代码),这样我的 docker 图像就不会臃肿?