如何在Yarn

时间:2019-02-13 17:27:17

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

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

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

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

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

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

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

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

1 个答案:

答案 0 :(得分: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

就版本控制而言,您不对文件或文件夹进行版本控制。您可以通过version的{​​{1}}属性进行版本控制,也可以使用package.json

通过GIT进行版本控制

您标记的版本应该与您在git tag -a v(major).(minor).(patch).中指定的版本匹配。

我建议reading more about semantic versioningcreating a script (like VueJS)自动增加您的软件包,版本和发布。