我有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吗?
答案 0 :(得分:1)
bower
并非如此。您要么安装整个软件包,要么不安装任何软件包。问题是bower
不知道包的哪些部分已被使用,因此必须下载整个包。
现在,您可以从源代码中获取所需的页面(wget
,下载它等)&不用担心其余部分,但这可能比它的价值更麻烦,因为你必须确保页面没有链接到其他页面。您也无法直接从bower
执行此操作,因此您必须自行设置,此时为什么要使用bower
?
如果您不关心空间,您也可以安装整个软件包,但只能使用部分(如,参考页面,如<link href="/path/to/package/page_in_package" />
中所示)的问题。我不相信这会对带宽等产生任何影响,因为整个软件包都在您的服务器上,但客户端只会请求一个页面(尽管该页面可能会导致客户端请求其他页面,例如其中<link />
。)
最后,您可以安装整个软件包然后删除部分软件包,但是您必须知道要删除哪些部分,bower
可能会尝试重新下载这些文件/文件夹。据我所知,通过实验,bower
不会尝试重新下载您删除的内容,只要该版本与您bower.json
中的版本相同,除非您告诉它bower install
或bower 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/