作为 npm 依赖项的私有 Typescript 库

Private Typescript library as an npm depenency

我有一个打包为 npm 模块的 Typescript 库。我在开发前端应用程序期间使用 yarn link 轻松集成了这个库。

现在是设置 GitLab CI 并让其他开发人员处理前端应用程序的时候了。我目前 运行 正在解决分发这个包的问题。

我确定的方案和遇到的问题:

这添加了源代码,但由于它是打字稿,因此未编译。我无法使用相同的 tsconfig.json 编译此库。只编译了一个文件。

此解决方案还存在端口 :22 在开发人员机器上被阻止的问题。这将阻止他们使用 git+ssh。我看不出 CI 如何能够检索到同样适用于开发人员的软件包。

我试过使用 tarball,但没有明显的方法来存储这个 tarball。 GitLab 不会将构建产生的工件暴露给其他 CI 管道。

接下来,我决定尝试将节点模块添加到 git 存储库中。但是我没有找到阻止 yarn 自动删除这个包的方法。如果我将库添加到 node_modules 然后它会在 运行 yarn.

时被删除

当然,我可以切换到使用私有 npm 模块。但在我看来,如果您已经拥有完美的 GitLab 环境,应该有更简单的方法来分发内部包。

如何在没有 NPM 私有注册表的情况下私​​下分发 Typescript 包?

一种选择是出售软件包,但将其放在自定义目录中(不在 node_modules 下),例如 my-library,然后放在 dependencies 中的 [=13] =],写"my-library": "link:my-library"。这将导致 Yarn 创建一个从 node_modules/my-librarymy-library 的符号链接。有关 link: 语法的更多信息,请参阅 this thread