如何使用Bower"源映射"用构建工具?

时间:2014-02-23 18:42:24

标签: dependency-management bower package-managers

Bower的documentation section on "Consuming a package"说:

  

Bower还提供源映射。构建工具可以使用它来轻松使用Bower软件包。

然后它举例说明了您可以使用简单命令输出的JSON:

{
  "backbone": "bower_components/backbone/index.js",
  "jquery": "bower_components/jquery/index.js",
  "underscore": "bower_components/underscore/index.js"
}

我明白这里发生了什么......但我真的不明白它的用途,即如何使用它。

我无法找到使用这种源地图的人的例子,而且我不太清楚Bower文档的建议。我想知道如何这个Bower生成的JSON可以被构建工具用来轻松地使用包。

有人知道吗?有没有人这样做过或看过它?

1 个答案:

答案 0 :(得分:2)

使用list --paths选项并查看映射是用于构建工具的主要用途之一(至少据我所知) - 正如文档建议的那样。如果他们举了一个例子就好了,但我可以在这里。

所以说你正在使用Bower来管理前端依赖,但你正在使用Grunt来构建你的站点/应用程序。你如何调和这两个? Bower在默认的根目录中安装依赖项,例如'app / _bower_components / packageName /',即你永远不想在生产或甚至开发中使用的路径,因为它很笨拙,可能会引用一个未缩小版本的包/库JS

Grunt拥有像'uglify'这样的任务,它可以获取给定的JS文件并将其缩小并缩小到更小的尺寸,对生产站点非常有用。在Grunt中,您可以编写如下任务:

        uglify: {
        modernizr: {
            files: {
                'javascripts/modernizr.min.js': 'app/_bower_components/modernizr/modernizr.js'
            }
        }

这使用第二个参数中提供的Bower映射(即指向Bower源)并将uglified输出输出到第一个参数(在本例中为javascripts / modernizr.min.js)以用于生产目的。

从这个意义上说,你的构建工具Grunt'消耗'你的Bower包和副本&将它们用于您的网站。这样,只要您的Uglify任务具有正确的路径,您就可以使用Bower更新/管理您的依赖项,并且您不会直接编辑源。因此,如果有一个新版本的JQuery,你只需通过Bower更新它,不需要做任何其他事情;没有手动复制,没有编辑。