如何使用git子模块作为依赖项安装bower组件?

时间:2016-10-21 09:14:17

标签: npm package bower frontend

我有一个库,需要2个依赖项存在于" vendor"目录。这个库在Github上安装了这两个依赖项作为git子模块,所以要从Git克隆安装我的库:

git clone --recursive https://github.com/MYLIBRARY.git 

要将其安装为另一个Git子模块,您可以这样做:

git submodule add https://github.com/MYLIBRARY.git && git submodule update --init --recursive

当尝试使用Bower安装它时出现问题,因为Git子模块没有使用bower包下载(依赖文件夹存在但是​​为空)。 2个依赖关系在bower上单独存在,但因为它们必须位于" vendor"主库的目录,我不能将它们包含为bower依赖项。我也不能假设安装我的库的任何项目都是Git仓库,所以我不能做类似的事情:

bower install MYLIBRARY && git submodule update --init --recursive

如果您安装我的库的父项目是Git仓库,那将会有效,但如果没有,则会出错。

我担心我可能需要有类似的指令:

bower install MYLIBRARY && cd bower_componets/MYLIBRARY && git clone https://github.com/DEPENDENCY1.git vendor/DEPENDENCY1 && git clone https://github.com/DEPENDENCY2.git vendor/DEPENDENCY2

可以通过在package.json中添加npm运行脚本来稍微整理一下:

"scripts": {
    "bower_vendor": "git clone https://github.com/DEPENDENCY1.git vendor/DEPENDENCY1 && git clone https://github.com/DEPENDENCY2.git vendor/DEPENDENCY2"
}

然后安装说明将成为:

bower install MYLIBRARY && cd bower_componets/MYLIBRARY && npm run bower_vendor

哪个更整洁,但如果用户已经定制了他们的bower_components目录(这在上面的命令中很容易改变,但仍然是另一个问题),那么再次无法工作。

我希望我能错过一些可以解决我问题的地方。我读到凉亭执行了一个git clone的回购,所以如果有办法让它执行git clone --recursive那将是惊人的。

由于

0 个答案:

没有答案