【问题标题】:Releasing a Javascript library for client use发布 Javascript 库供客户使用
【发布时间】:2019-07-24 23:04:25
【问题描述】:

我有一个为客户编写的 Javascript 库。这是使用 webpack 用 typescript 编写的,并“编译”成 javascript。我想让客户端访问分发文件而不是整个源。理想情况下,他们可以从命令行进行安装,以便轻松安装更新。

该库提供了一些 javascript 函数。客户端会将脚本安装在其服务器上的一个位置。然后,他们可以根据需要将 javascript 包含在他们的网络调查中。

+project
  +dist
     -main.js
     -vendor.js
     -index.html
     -README.md
     -LICENSE.md
  +src
     -index.js
     -index.html
     ...

我最初的想法是让他们访问仅包含分发文件的私有 git 存储库。所以我的项目将是一个 git 存储库,只有我可以访问这个存储库。然后我会将dist 目录的内容复制到release 目录。 release 目录将是我可以提供给客户端的另一个 git 存储库。

我不确定这是最好的方法。

有人建议 GitHub 发布可能是一种选择 - 但我不使用 GitHub,我使用 GitLab 并希望继续这样做。

npm 似乎也不是一个好的选择。它将文件安装到node_modules 目录并创建一个package.json 文件。这会让我的客户感到困惑并且不“干净”。

【问题讨论】:

  • 为什么使用包管理不干净?不使用已建立的分发机制并尝试使用另一种自定义解决方案重新发明轮子对我来说听起来并不干净。
  • GitLab 也支持发布工件。

标签: javascript release release-management


【解决方案1】:

这听起来像是第二个 git 存储库,因为子模块可以为您工作。在您这边,它会接收构建的文件,而在客户端,他们可以使用它们。

我建议使用标签来指示子模块中的重要版本

通过使用单独的存储库,不存在泄露原始文件的风险。

或者,您可以将文件打包为 zip,然后在 ci 进程中上传 S3 之类的地方,然后编写脚本让客户端可以自动下载分发文件 - 但这似乎比仅使用包管理器,例如 npm。

【讨论】:

    猜你喜欢
    • 2015-04-21
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 2020-06-04
    • 2019-09-16
    • 2014-07-11
    相关资源
    最近更新 更多