Dav*_*nan 6 yarnpkg yarn-workspaces
我有一个纱线工作区项目,它看起来像这样:
node_modules
packages
shared
test.js
package.json
client
test.js
package.json
server
test.js
package.json
package.json
server.Dockerfile
Run Code Online (Sandbox Code Playgroud)
如您所见,我有一个server.Dockerfile,它构建了一个服务器映像,我可以将其推送到不同的托管服务提供商,例如 Heroku 或 AWS。
我复制packages并package.json进入这个容器:
COPY packages packages
COPY package.json .
Run Code Online (Sandbox Code Playgroud)
然后我只安装server包的依赖项:
RUN cd packages/server && yarn install
Run Code Online (Sandbox Code Playgroud)
所有依赖项现在都在node_modules文件夹中,接下来我想做的是删除packages文件夹以从 docker 映像中删除任何不必要的代码(例如客户端代码):
RUN rm -rf packages
Run Code Online (Sandbox Code Playgroud)
问题在于node_modules文件夹内的所有纱线工作区包只是到packages文件夹的符号链接......所以我无法删除该文件夹。
如何yarn install复制纱线工作区包而不是创建符号链接?
或者,是否有另一种方法可以删除所有未使用的代码(例如客户端代码),以便我的 docker 图像不会膨胀?
您可以使用yarn-workspace-isolator提取包及其本地依赖项,以避免在您不愿意的情况下将它们发布到npm。
isolate-workspace -w my-package -o ~/dist/my-package
Run Code Online (Sandbox Code Playgroud)
现在,正如医生所说:
您只需
yarn install在其中运行~/dist/my-package,yarn 就会安装所有依赖项,就像您根本没有使用过工作区一样,而无需发布任何工作区依赖项。
| 归档时间: |
|
| 查看次数: |
5218 次 |
| 最近记录: |