如何在 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.json
的 version
属性 版本,在您的情况下,通过使用 git tag -a v(major).(minor).(patch).
通过 GIT
您标记的版本应与您在 package.json
中指定的版本相匹配。
我建议 reading more about semantic versioning and creating a script (like VueJS) 自动增加你的包、版本和发布。
我正在做一个 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.json
的 version
属性 版本,在您的情况下,通过使用 git tag -a v(major).(minor).(patch).
您标记的版本应与您在 package.json
中指定的版本相匹配。
我建议 reading more about semantic versioning and creating a script (like VueJS) 自动增加你的包、版本和发布。