javascript - 发布 Javascript 库供客户使用
问题描述
我有一个为客户编写的 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 repo。
我不确定这是最好的方法。
有人建议 GitHub 发布可能是一种选择——但我不使用 GitHub,我使用 GitLab 并希望继续这样做。
npm
似乎也不是一个好的选择。它将文件安装到node_modules
目录中并创建一个package.json
文件。这会让我的客户感到困惑并且不是“干净的”。
解决方案
听起来像第二个 git 存储库,因为子模块可以为您工作。在您这边,它将接收构建的文件,而在客户端,他们可以使用它们。
我建议使用标签来指示子模块中的重要版本
通过使用单独的存储库,没有泄漏原始文件的风险。
或者,您可以将文件打包为 zip,然后在 ci 进程中上传 S3 之类的地方,然后编写一个脚本,让客户端可以自动下载分发文件 - 但这似乎比仅使用包管理器更复杂npm。
推荐阅读
- javascript - 用户在输入字段中输入数据并按下回车后触发事件
- reactjs - 在移动设备上使用 Formik 的 React-select 验证工作不正确
- javascript - 如何获取 MySQL 列的位置?
- kubernetes - 使用 Kustomize 为微服务管理 k8s 机密
- amazon-web-services - 如何通过 AWS CLI 更新 Amazon S3 存储桶策略?
- mysql - 我如何在 mysql 的连接表中获得我的第二个 id
- java - 解决方法静态块继承?
- javascript - 如何遍历 JavaScript 中的文件夹?
- curl - Instagram API 在本地工作,但不在服务器上
- jupyter-notebook - 使用 jupyterhub-tmpauthenticator 的问题