如何运行多个bower.json文件(在composer依赖项中)



我有一个PHP项目,它使用composer作为PHP依赖项,使用bower作为前端依赖项。所以基本上我有一个目录结构,看起来像这样(显然是一个简化的版本):

/app
/bower_components
/public
/vendor
   /foo
      /bar
         /src
         bower.json
         composer.json
bower.json
composer.json
gulpfile.js

正如您所看到的,php依赖项有一些自己的前端依赖项,这些依赖项也由bower管理。但是,当我从应用程序的根目录运行bower install时,foo/bar依赖项中的bower文件将被忽略。

我不想提前在foo/bar中构建我的前端依赖项,只想使用gump将它们包含在我的应用程序中,因为foo/bar可能与我的应用有重叠的依赖项(比如jQuery或Bootstrap之类的),我显然不想将它们包含两次。我也更喜欢bower在重叠依赖关系存在版本冲突时抛出错误,而不是必须找出困难的方法。

理想情况下,我所有的前端依赖项都会出现在我的根bower_components目录中,既有来自我应用程序的bower.json的依赖项,也有来自vendor/foo/bar/bower.json。这样,我就可以让gulp将所有这些依赖项编译成一个(或者可能是几个).js和.css文件。

所以问题是,这可能吗我可以让bower查看子目录中的其他bower.json文件吗或者有没有推荐的方法可以在运行bower之前自动合并多个bower.json文件?

我花了最后一个小时在网上搜索这个问题的好解决方案,但我似乎什么都想不出来。(如果你知道关于这个话题的好博客文章或资源,请分享!)谷歌给我的都是一些基本的bower教程,在这里没有太大帮助。我真的是第一个遇到这个问题的人吗?还是我试图解决手头问题的方式有根本性的错误?

解决这个问题的一种方法(也是Symfony CMF现在使用的一种方式)是为您的PHP依赖项创建bower包。这意味着您从捆绑包中创建了一个前端bower包,该包只包含带有依赖项的bower.json文件。

现在,在应用程序的bower.json文件中,您可以将这些"虚拟"bower包指定为需求并运行bower install。例如:

{
  "dependencies": {
    "php-foobar": "^1.3"
  }
}

composer插件composer额外资产和composer资产插件允许向composer.json.添加bower依赖项

composer资产插件是在纯php中实现的,它将bower包转换为composer包。

作曲家extra assets称幕后的"真正的"弓箭手。它是自动安装的(包括所需的nodejs),但如果您的系统上没有它的话。

免责声明:我是作曲家额外资产的作者。

相关内容

  • 没有找到相关文章

最新更新