如何使用已安装的软件包更新bower.json?


129

在我的项目中,我安装了bower没有保存选项的组件。现在,我想更新为bower.json

如何使用已安装的软件包更新bower.json?


2
缺乏一步一步的方法似乎是一个缺陷。由于有一个卸载命令,因此,如果bower install没有,则运行起来--save总是会更困难,也永远不会更容易。
克里斯(Chris

1
如果bower.json中没有任何内容,则将其删除并bower init在控制台中键入。
Jean-Luc Barat

Answers:


146

只需列出您的依赖项:

bower list

然后,应使用参数“ --save”运行所有安装命令,如下所示:

bower install bootstrap --save

这是一项艰苦的工作,但是如果您有上千个依赖项,是否可以创建一个脚本来自动执行任务。


这是一个很好的答案。谢谢!
jessegavin 2014年

1
我发现仅用10个软件包就出现了问题,因为不清楚哪个软件包是作为其他软件包的依赖而下载的,这会导致Bower提示输入版本号。即使答案正确,生成的bower.json文件也不是正确的。我使用了塞巴斯蒂安的答案,这对我很有效。
gb2d

bower.json中未声明的依赖项由控制台上的“ extraneous”标记标识。
otaviodecampos

135

一个小技巧,如果您不想为此编写脚本:

例如,在执行任何操作之前,请在bower2.json中重命名bower.json。

那么您可以执行以下操作:

$ bower init

(自动创建bower.json文件)。

请注意,所有问题均应使用当前配置预先填写。

什么时候会问你:

将当前安装的组件设置为依赖项?说是

现在,您将所有依赖项都保存在新的bower.json文件中(并且您可以检查旧的bower2.json是否一切正确)


它在执行此操作时提到的注册表选项是什么-我已经假定此命令将仅在本地执行操作。我选择对这个方便的问题保密,但想了解它的含义-是否存在某种互联网凉亭注册中心。我只是内联认为这是凉亭如何做一个npm安装的事情。
降落

2
@landed:这将是凉亭包注册表(bower.io/search)HTH
FOR

这对我来说bower.json没有用,因为没有列出angular:'1.5.5'。这是因为我已经angular-animate安装,因为它依赖于angular 1.5.5凉亭决定不包括angularbower.json(考虑当有人做了就会反正安装bower installbower.json)。如果有人angular-animatebower.json这种情况下删除bower也不会安装,angular因为这没有列出,这将是一个问题。
阿卡什(Akash)2016年

35

有点艰巨的方法是运行 bower list,查找标记为无关的软件包,然后将其手动添加到bower.json

如果有很多无关的软件包,则可以通过运行bower init并回答“ 是”来更轻松地解决此问题。到“设置当前已安装的组件的依赖?”。这将需要您当前的内容bower.json,请先阅读,然后使用旧版本中的信息创建新版本。因此,在理想情况下,仅添加无关的软件包,您将拥有相同的文件。

警告:首先,在此过程中可能会丢失一些内容(例如,devDependecies)。其次,在Bower的最新版本(v1.2.7)中,这不会保留当前软件包的信息!我觉得这是一个错误。但是,您可以保存旧文件,并将其(手动)与生成的文件合并。

另外,您应该通过打开Bower问题来请求选项或其他选项,因为这将受到许多开发人员的欢迎。


3
注意:Bower 1.3.3保留当前软件包信息。
比尔·凯勒

27

您可以使用bower-check-updates(您需要在计算机上安装node.js):

bower-check-updates 是一个实用程序,它会自动使用所有依赖项的最新版本调整bower.json

bower-check- updates-npm-check-updates的一个分支,所以除了更新之外bower.json,都是一样的,而不是package.json

npm install -g bower-check-updates
bower-check-updates -u
bower install 

这将安装 bower-check-updates在全球,因此您可以从任何地方启动它。

PS有关npm-check-updates请参见本主题的更多信息


也许bower install
阿蒙陶

@ÁmonTamás bower install没有更新bower.json。
谢尔盖·潘菲洛夫

5
bower-check-updates的作者不赞成使用该项目,而推荐使用npm-check-updates,该项目增加了对bower.json更新的支持。
congusbongus

2

如果您没有安装太多的Bower软件包,请尝试编写bower install [package_name] --save。这只会更新您的bower.json文件。


0

之后bower-check-updates -u必须运行bower install而不是npm install

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.