我正在编写一个git repo UI-Components,它有自己的Bower依赖项。在此repo中有/src
和/dist
个目录。我只是将/src
目录推送到git,并使用gulp生成/dist
目录,以便/dist
中的文件可以包含在使用UI-Components的任何项目中。我在.bowerrc
中有一个脚本如下:
"scripts": {
"postinstall": "gulp prep-dependency"
}
gulp prep-dependency
是我的gulpfile中指定的gulp任务。当我从包含bower install
和/src
的根目录运行.bowerrc
时,一切都按预期工作,并执行postinstall
命令,这将生成/dist
目录。大。
现在,我希望能够从另一个项目中执行相同的操作,让我们将其称为ParentProject,它将UI-Components作为依赖项。
我希望当我在ParentProject的根目录中运行bower install
时,将安装ParentProject bower.json
中包含的所有bower依赖项。好消息,他们已经安装好了。好极了!坏消息,来自UI-Components的postinstall
命令永远不会被执行,所以我从来没有/dist
目录。
如果bower install
以递归方式运行所有依赖项,那么为什么这个postinstall没有被提取?是因为来自UI-Components的.bowerrc
文件没有被推送到git所以ParentProject甚至不知道有postinstall
?我没有在我的.gitignore
文件中明确忽略它。我怎样才能使这个工作?
答案 0 :(得分:0)
Bower包旨在包含即用型(已编译)文件。
在任何事项的依赖关系中,在ParentProject bower will not use bower install
中运行.bowerrc
:
这些挂钩并非旨在为组件作者提供安装后的构建步骤。因此,这些挂钩的配置在父项目目录的.bowerrc文件中提供。
因此,您应该更改分发UI组件的方式(即推送dist版本/为源和bower组件创建单独的repos)或在ParentProject中添加自定义构建逻辑