如何防止Bower膨胀我的应用程序?

时间:2013-12-19 13:45:24

标签: yeoman bower

我正在使用Express.js,Backbone.js,Bootstrap和其他一些Web应用程序。我决定给Bower一个管理这个前端组件的尝试,但是在安装软件包之后,我注意到它们都安装了很多我根本不需要的东西,比如LESS文件(Bootstrap)或框架(Backbone),README.md文件,文档源代码等的QUnit测试:

Bower Madness

正如你所看到的,这里绝对是疯狂。

我搜索了一下软件包索引,我找到了一个名为bootstrap.css的更精简的Bootstrap版本,但是在安装之后我注意到它仍然是版本2.3.2,所以已经过时了。

是否有办法安装所有这些库的最新 dist 版本?

拥有一个包管理器的想法很不错但似乎有点不用让我的应用程序源充满所有这些东西。我绝对不需要在我的网络服务器上安装Backbone文档。

2 个答案:

答案 0 :(得分:4)

这是包装作者没有配置他们的bower.json来忽略那些无关的文件和文件夹的问题。此外,并非所有包作者都将其bower.json配置为列出其包的主文件。

你可以看到如何在没有这两条信息的情况下 - 不需要哪些文件,哪些是“主要”文件 - Bower或任何其他工具无法可靠地猜出什么是必要的什么是垃圾。

它使你的服务器膨胀;理想情况下,您不应该提交Bower组件。您将拥有一个构建过程,它将您的源文件放在磁盘上,并将它们转换为一个缩小的文件。

答案 1 :(得分:1)

您可以尝试bowercopy。 它做了什么?

  1. 下载bower.json
  2. 中列出的所有凉亭组件
  3. 将您需要的文件复制到指定的文件夹
  4. (可选)删除bower_components文件夹。
  5. 每次运行bowercopy任务时,都会执行上述过程。

    咕噜声配置示例

        bowercopy: {
            options: {
                destPrefix:'app/jslib',  // Here is the dest folder 
                clean:true // It's optinal
            },
            dist: {
               // List all the files you need here
               src:'backbone/backbone.js' // "src" can be an array
            }
        }
    

    是的,您必须逐个指定所需的所有文件。但它确实实现了你的目标。