使用 docker dev 容器时的 npm 链接开发包

Sch*_*ton 3 docker npm-link vscode-devcontainer

用于npm link在 docker dev 容器中同时编写多个包

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

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

Sch*_*ton 6

1.在主机上创建一个目录作为全局repo

(我喜欢创建一个 docker 目录并将所有卷放入其中)

mkdir -p ~/docker/volumes/yalc
Run Code Online (Sandbox Code Playgroud)

2. 将卷挂载到两个(或多个)开发容器中

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

devcontainer.json

...
"mounts": ["source=/Users/evan/docker/volumes/yalc,target=/yalc,type=bind,consistency=cached"],
...
Run Code Online (Sandbox Code Playgroud)

并重建容器

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

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

npm i yalc -g
yalc publish --store-folder /yalc
Run Code Online (Sandbox Code Playgroud)

--store-folder告诉 yalc 将存储库发布到我们的卷

4. 链接到消费仓库中的包

考虑首先添加 yalc .gitignore

.yalc
yalc.lock
Run Code Online (Sandbox Code Playgroud)

运行链接命令

npm i yalc -g
yalc link PkgA --store-folder /yalc
Run Code Online (Sandbox Code Playgroud)

包的名称在哪里PkgA定义?package.json