作为 npm 依赖项的私有 Typescript 库
Private Typescript library as an npm depenency
我有一个打包为 npm 模块的 Typescript 库。我在开发前端应用程序期间使用 yarn link
轻松集成了这个库。
现在是设置 GitLab CI 并让其他开发人员处理前端应用程序的时候了。我目前 运行 正在解决分发这个包的问题。
我确定的方案和遇到的问题:
yarn add <git-url>
这添加了源代码,但由于它是打字稿,因此未编译。我无法使用相同的 tsconfig.json
编译此库。只编译了一个文件。
此解决方案还存在端口 :22 在开发人员机器上被阻止的问题。这将阻止他们使用 git+ssh
。我看不出 CI 如何能够检索到同样适用于开发人员的软件包。
yarn add tar-ball
我试过使用 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-library
到 my-library
的符号链接。有关 link:
语法的更多信息,请参阅 this thread。
我有一个打包为 npm 模块的 Typescript 库。我在开发前端应用程序期间使用 yarn link
轻松集成了这个库。
现在是设置 GitLab CI 并让其他开发人员处理前端应用程序的时候了。我目前 运行 正在解决分发这个包的问题。
我确定的方案和遇到的问题:
yarn add <git-url>
这添加了源代码,但由于它是打字稿,因此未编译。我无法使用相同的 tsconfig.json
编译此库。只编译了一个文件。
此解决方案还存在端口 :22 在开发人员机器上被阻止的问题。这将阻止他们使用 git+ssh
。我看不出 CI 如何能够检索到同样适用于开发人员的软件包。
yarn add tar-ball
我试过使用 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-library
到 my-library
的符号链接。有关 link:
语法的更多信息,请参阅 this thread。