使用 docker 开发容器时 npm link 开发包

npm link dev packages when using docker dev containers

使用 npm link 在 docker 个开发容器中同时创作多个包

PkgA 是 PkgB 的依赖项,我正在对两者进行更改。目标是能够 link PkgB 中的 PkgA,而无需发布每个小更新并重新安装。 npm|yarn link 解决了这个问题,但我正在 docker 容器中开发。

https://github.com/npm/npm/issues/14325

1。在主机上创建一个目录作为全局仓库

(我喜欢制作一个 docker 目录并将我所有的卷都放在里面)

mkdir -p ~/docker/volumes/yalc

2。在两个(或更多)开发容器中安装卷

https://code.visualstudio.com/docs/remote/containers-advanced

devcontainer.json

...
"mounts": ["source=/Users/evan/docker/volumes/yalc,target=/yalc,type=bind,consistency=cached"],
...

并重建容器

3。安装 yalc 并发布包(在依赖 repo 容器中)

https://www.npmjs.com/package/yalc

npm i yalc -g
yalc publish --store-folder /yalc

--store-folder 告诉 yalc 将 repo 发布到我们的卷

4。 Link 到消费仓库中的包

首先考虑将 yalc 添加到 .gitignore

.yalc
yalc.lock

运行 link 命令

npm i yalc -g
yalc link PkgA --store-folder /yalc

其中 PkgA 是在 package.json

中定义的包的名称