如何在 Yarn 中为私有 gitlab 依赖项部署包

How to deploy a package for a private gitlab dependency in Yarn

我正在做一个 vue 项目,需要使用另一个私有 vue 项目作为依赖项。这个另一个私人项目是一个 vue 插件。

我找到了如何通过在 package.json 中添加以下行来告诉 yarn 在私有 gitlab 存储库中获取包:

"dependencies": {
    "myPackage": "git+https://{token-name}:{token}@gitlab.com/path/to/repo.git#someTag"
}

这个很好用,我的 repo 的内容下载到我的 node_modules。然而,我的问题来了:

在这个 repo 中,实际的 vue 插件不在根目录下,它在 repo 的子文件夹下,这意味着 repo 根目录中的 index.js 不是我的插件(我猜猜这是将要使用的一种纱线)。

我有一个自定义的 yarn 部署脚本,它将我的插件编译成一个 JS 文件并将其放在 dist 文件夹中,但是 dist 文件夹没有版本控制。我可以使用 gitlab CI 来生成它,但我仍然很确定 yarn 不会使用 dist 文件夹中的内容。

我的(广泛的)问题是:我如何使用我配置的工具(yarn、gitlab-ci)才能将我的私有 gitlab 存储库用作我的一个 vue 插件其他项目 ?

您可以通过 package.json 的属性告诉其他包如何使用您的包。例如,main declaration

{ 
    main: 'dist/index.js'
}

这会告诉节点如何从您的包中解析您的模块。

所以 require('my-vue-plugin')import MyVuePlugin from 'my-vue-plugin' 将解析为 node_modules/my-vue-plugin/dist/index.js,例如。

就版本控制而言——您不对文件或文件夹进行版本控制。您通过 package.jsonversion 属性 版本,在您的情况下,通过使用 git tag -a v(major).(minor).(patch).

通过 GIT

您标记的版本应与您在 package.json 中指定的版本相匹配。

我建议 reading more about semantic versioning and creating a script (like VueJS) 自动增加你的包、版本和发布。