【问题标题】:How to deploy a package for a private gitlab dependency in Yarn如何在 Yarn 中为私有 gitlab 依赖项部署包
【发布时间】:2019-02-13 17:27:16
【问题描述】:

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

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

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

这很好用,我的回购内容下载到我的node_modules。但是,我的问题来了:

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

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

我的(广泛的)问题是:我如何使用我的处置工具(纱线,gitlab-ci)能够将我的私人 gitlab 存储库用作我的其他项目之一的 vue 插件?

【问题讨论】:

    标签: vue.js vuejs2 gitlab gitlab-ci yarnpkg


    【解决方案1】:

    您可以通过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 versioningcreating a script (like VueJS) 自动增加您的包、版本和发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-03
      • 2019-04-03
      • 2018-05-28
      • 2018-07-19
      • 2022-01-07
      • 2019-02-20
      • 2023-02-01
      • 2017-09-28
      相关资源
      最近更新 更多