【问题标题】:Private Typescript library as an npm depenency私有 Typescript 库作为 npm 依赖项
【发布时间】:2019-02-25 20:46:34
【问题描述】:

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

现在是设置 GitLab CI 并让其他开发人员在前端应用程序上工作的时候了。我目前遇到了分发这个包的问题。

我已经确定的选项和遇到的问题:

  • yarn add <git-url>

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

此解决方案还有一个问题,即端口 :22 在开发人员的机器上被阻塞。这将阻止他们使用git+ssh。我不知道 CI 将如何检索这个也适用于开发人员的包。

  • yarn add tar-ball

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

  • 供应包

接下来,我决定尝试将节点模块添加到 git repo。但是我发现没有办法阻止纱线自动删除这个包。如果我将库添加到 node_modules,那么它会在运行 yarn 时被删除。

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

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

【问题讨论】:

    标签: git typescript npm gitlab-ci yarnpkg


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-04-28
      • 2021-12-04
      • 2021-06-29
      • 1970-01-01
      • 2016-03-30
      • 2019-02-20
      • 1970-01-01
      • 2019-06-21
      • 2015-03-11
      相关资源
      最近更新 更多