从URL安装Bower依赖项并指定版本

时间:2013-10-13 17:24:53

标签: bower

我正在尝试使用URL安装Bower的依赖项。从Bower文档开始:

Bower提供了几种安装软件包的方法:

    # Using the dependencies listed in the current directory's bower.json 
    bower install
    # Using a local or remote package 
    bower install <package>
    # Using a specific version of a package 
    bower install <package>#<version>
    # Using a different name and a specific version of a package 
    bower install <name>=<package>#<version> 

<package>可以是以下任何一种:

  • 映射到Bower注册的包的名称,例如jquery。
  • 远程Git端点,例如git://github.com/someone/some-package.git。 可以是公共的还是私人的。
  • 本地端点,即Git存储库的文件夹。
  • 简写端点,例如someone/some-package (默认为GitHub)。
  • 文件的URL,包括zip和tar文件。 它的内容将被提取。

然而,它说,除了URL之外的所有类型都允许指定版本。

如何为URL下载依赖项指定版本?

10 个答案:

答案 0 :(得分:191)

使用git端点而不是包名:

bower install https://github.com/jquery/jquery.git#2.0.3

答案 1 :(得分:53)

如果使用bower.json文件指定依赖项:

{
     "dependencies": {
         ...
         "photo-swipe": "git@github.com:dimsemenov/PhotoSwipe.git#v3.0.x",

#bower 1.4 (tested with that version) can read repositorios with uri format

         "photo-swipe": "git://github.com/dimsemenov/PhotoSwipe.git#v3.0.x",

     }
}

请记住,bower还会搜索已发布的版本和标签,以便您可以指向几乎所有内容,并且可以像之前的示例那样插入基本查询模式。这将获取3.0版本的最新次要更新(从bower 1.3.5测试)

更新,因为问题描述还提到仅使用URL而没有提及github存储库。

另一个例子是使用所需的URL执行此命令,如:

bower install gmap3MarkerWithLabel=http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.0/src/markerwithlabel.js -S

该命令下载你的js库放入{你的目标路径} /gmap3MarkerWithLabel/index.js并在你的bower.json文件中自动创建一个名为gmap3MarkerWithLabel的条目:“......”之后,你只能执行{{ 1}}如果需要的话。

有趣的是,如果您执行进程后退(手动添加bower.json中的条目,然后是bower install entryName)它不起作用,你得到一个

  

凉亭ENOTFOUND套餐   找不到gmapV3MarkerWithLabel

答案 2 :(得分:21)

定位特定提交

远程(github)

使用github时,请注意您还可以通过将其提交哈希附加到其克隆URL的末尾来定位特定提交(例如,您已制作并更新的分支)。例如:

"dependencies": {
  "example": "https://github.com/owner_name/repo_name.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

本地(文件系统)

或者如果您使用项目的.git目录,可以在本地文件系统中定位git提交,就像这样(在Windows上;注意正斜杠):

"dependencies": {
  "example": "file://C:/Projects/my-project/.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

这是测试您已在本地提交但尚未推送到回购的库代码的一种方法。

答案 3 :(得分:21)

使用以下内容:

bower install --save git://github.com/USER/REPOS_NAME.git

更多信息: http://bower.io/#getting-started

答案 4 :(得分:9)

只是更新。

现在如果它是一个github存储库,那么如果你不介意当然的版本,只需使用一个github速记即可。

GitHub简写

$ bower install desandro/masonry

答案 5 :(得分:7)

只指定uri端点为我工作,bower 1.3.9

  "dependencies": {
    "jquery.cookie": "latest",
    "everestjs": "http://www.everestjs.net/static/st.v2.js"
  }

正在运行bower install,我收到了以下输出:

bower new           version for http://www.everestjs.net/static/st.v2.js#*
bower resolve       http://www.everestjs.net/static/st.v2.js#*
bower download      http://www.everestjs.net/static/st.v2.js

你也可以尝试更新凉亭

  • npm update -g bower

根据documentation:支持以下类型的网址:

http://example.com/script.js
http://example.com/style.css
http://example.com/package.zip (contents will be extracted)
http://example.com/package.tar (contents will be extracted)

答案 6 :(得分:7)

这是通过bower.json从GitHub安装特定代码或提交的简便方法。

{
  "dependencies": {
    "your-library-name": "<GITHUB-USERNAME>/<REPOSITORY-NAME>#<TAG-OR-COMMIT>"
  }
}

例如:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}

答案 7 :(得分:3)

我认为指定版本仅适用于git-endpoints。而不是文件夹/拉链。当您将bower指向js文件/文件夹/ zip时,您已经指定了包版本(确实除了js)。因为包中有bower.json版本。 当您将bower指向可以包含许多版本的包的存储库时,在'bower install'中指定版本是有意义的。我认为它只能是git。

答案 8 :(得分:3)

尝试bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --save其中1.0.3是您可以通过阅读发布版下的标记获得的标记号。也可以用git://替换URL,以便系统连接。

答案 9 :(得分:0)

从git安装包并保存到bower.json依赖块。

  1. bower register package-name git-endpoint#version
  2. install package-name --save
  3. --save会将包名称版本保存在依赖块内的bower.json文件中。

    Reference