Bower下载整个jQuery

时间:2014-04-05 17:46:04

标签: javascript jquery dependencies install bower

我有Bower版本1.3.1。

我已经定义了以下依赖项:

"dependencies": {
"angular" : "1.2.13",
"angular-cookies" : "1.2.13",
"angular-resource" : "1.2.13",
"angular-route" : "1.2.13",
"bootstrap" : "3.1.1",
"jqplot" : "b882a2044fe03e4009f49b990155a8e1686a2d67",
"jquery" : "2.0.0",
"requirejs" : "2.1.11",
"requirejs-text" : "2.0.10",
"spin.js" : "1.3.3"
}

我做完之后:

凉亭安装。我得到了jQuery的整个项目:

drwxr-xr-x  6 root root   4096 Apr  5 13:41 .
drwxr-xr-x 12 root root   4096 Apr  5 13:41 ..
-rw-rw-r--  1 root root   6353 Apr 18  2013 AUTHORS.txt
-rw-r--r--  1 root root    512 Apr  5 13:41 .bower.json
-rwxrwxr-x  1 root root    212 Apr 18  2013 bower.json
drwxrwxr-x  2 root root   4096 Apr  5 13:41 build
-rwxrwxr-x  1 root root    212 Apr 18  2013 component.json
-rwxrwxr-x  1 root root    881 Apr 18  2013 composer.json
-rw-rw-r--  1 root root   8134 Apr 18  2013 CONTRIBUTING.md
-rw-rw-r--  1 root root    595 Apr 18  2013 .editorconfig
-rw-rw-r--  1 root root     26 Apr 18  2013 .gitattributes
-rw-rw-r--  1 root root    178 Apr 18  2013 .gitignore
-rw-rw-r--  1 root root    171 Apr 18  2013 .gitmodules
-rw-rw-r--  1 root root  15021 Apr 18  2013 Gruntfile.js
-rwxrwxr-x  1 root root 240196 Apr 18  2013 jquery.js
-rwxrwxr-x  1 root root  16178 Apr 18  2013 jquery-migrate.js
-rwxrwxr-x  1 root root   7086 Apr 18  2013 jquery-migrate.min.js
-rwxrwxr-x  1 root root  83095 Apr 18  2013 jquery.min.js
-rw-rw-r--  1 root root    242 Apr 18  2013 .jshintrc
-rw-rw-r--  1 root root   4418 Apr 18  2013 .mailmap
-rw-rw-r--  1 root root   1099 Apr 18  2013 MIT-LICENSE.txt
-rw-rw-r--  1 root root    883 Apr 18  2013 package.json
-rw-rw-r--  1 root root  12447 Apr 18  2013 README.md
drwxrwxr-x  2 root root   4096 Apr  5 13:41 speed
drwxrwxr-x  4 root root   4096 Apr  5 13:41 src
drwxrwxr-x  5 root root   4096 Apr  5 13:41 test

我可以以某种方式安装依赖项以仅下载jquery.min.js吗?

3 个答案:

答案 0 :(得分:1)

bower并非如此。您要么安装整个软件包,要么不安装任何软件包。问题是bower不知道包的哪些部分已被使用,因此必须下载整个包。

现在,您可以从源代码中获取所需的页面(wget,下载它等)&不用担心其余部分,但这可能比它的价值更麻烦,因为你必须确保页面没有链接到其他页面。您也无法直接从bower执行此操作,因此您必须自行设置,此时为什么要使用bower

如果您不关心空间,您也可以安装整个软件包,但只能使用部分(如,参考页面,如<link href="/path/to/package/page_in_package" />中所示)的问题。我不相信这会对带宽等产生任何影响,因为整个软件包都在您的服务器上,但客户端只会请求一个页面(尽管该页面可能会导致客户端请求其他页面,例如其中<link />。)

最后,您可以安装整个软件包然后删除部分软件包,但是您必须知道要删除哪些部分,bower可能会尝试重新下载这些文件/文件夹。据我所知,通过实验,bower不会尝试重新下载您删除的内容,只要该版本与您bower.json中的版本相同,除非您告诉它bower installbower install <any package>。如果你说bower update <whatever>,它甚至不会重新下载它们。如果您的bower.json中没有该软件包,bower将永远不会删除该文件夹中的任何内容,但如果其他软件包需要此软件包的其他版本,它将无法帮助您,或者,这是bower的全部原因,不是吗?

答案 1 :(得分:1)

这不是关于凉亭,而是jQuery本身。由于jQuery没有一个独立的存储库可以在bower上进行分发,因此您可以获得整个项目。例如,Angular有an official one,其中Bootstrap有an unofficial one,您只能获得生产就绪文件。

更新:实际上component/jquery正是你想要的:一个jquery的shim项目。它不会显示在$ bower search jquery命令中,但您可以使用repo url进行安装。

$ bower install https://github.com/components/jquery

然而,这个回购will probably be deleted soon

答案 2 :(得分:1)

您可以尝试使用bower-installer https://github.com/blittle/bower-installer

这是一个安装bower依赖项的工具,它不包含整个repos。它只提取&#34; main&#34;您配置使用的目录中的文件。如果某个图书馆不包含&#34; main&#34; bower.json配置中的文件,或者你想要不同的文件,你可以在你的bower.json中配置它。

我还应该注意到它仍然会在bower_components中下载整个仓库,因为它首先使用bower install然后移动&#34; main&#34;文件到目标目录。

也许,这并不能涵盖您不希望下载除一个特定文件之外的任何其他文件的确切用例,但如果您将其与gulp混合使用它会很有用它将在bower-installer完成后删除大型bower_components /。

更多资源: https://scotch.io/tutorials/only-grab-the-files-you-need-while-using-bower http://strangemilk.com/bower-installer/