你如何卸载所有的凉亭包?

有时重build整个站点并强制重新安装bower.json中的所有软件包的新版本是有用的。

但是,似乎没有办法做到这一点:

尝试#1:

$ bower uninstall bower not-installed 0 

不,只是在逐包的基础上工作,即使一个干净的“凉亭安装”使用bower.json。

尝试#2:

 $ bower install -f -l 0 $ 

不,尽pipe'-f',这完全没有,如果依赖关系得到满足。

尝试#3:

 $ rm -r bower_components $ 

! 啊胜利! …等等,这是什么?

 rm: bower_components: No such file or directory 

哦,这个项目里有一个.bowrc文件,用来设置安装目录。

我目前可怕的解决scheme:

运行自定义脚本:

 - Parse .bowerrc if one exists - Load the directory if one is specified in the json block - If the directory currently exists... - ...recursively delete the directory. 

我猜想,它是有效的,但是要重复设置是非常烦人的。

我错过了什么吗?

是不是只有一个简单的bower命令来删除本地安装的模块?

看起来像真正的基本function,我希望凉亭卸载做。

(这不是一个真正的javascript问题,但我会高兴地接受一些挂钩到模块模块的东西,以使这发生在一个简单的节点脚本)

上下文

编辑:如果你想为这样的任务“动力”,就是这样的:我们有一个jenkins服务器来构build我们的项目并运行testing。 但是,周期性地没有明显的原因, 调查,这几乎总是因为jenkins正在使用存储库的前一个副本,只是一个git-pull在构build和运行testing之前更新到最新版本; 因此,以前的bower_components目录就在那里,并且它充满了各种组件的caching副本。

这里有一些例子是#@ $ @#$'d并且需要bower作为强制安装再次运行:

1)一些白痴(> _> fitvids)删除了以前的项目标签发布。

2)一些项目已经退出了凉亭/移动其github页面

3)一些项目(> _> jquery)已经改变了文件在非主要版本的版本中的布局方式。

我意识到这个问题的“正确”解决scheme是:修复jenkins,以便为每个构build创build一个新的临时目录。 …但这不在我的控制之下

所以,作为构build步骤,我需要自动化一种方法来删除缓冲组件,强制它们全部重新安装; 无论是作为一个咕噜任务(构build的一部分)或jenkins构build步骤。 但是,从上面(3)记得,我们的项目使用.bowerrc,所以它不像简单地删除文件夹那么简单。

如果我可以卸载所有现有的bower组件作为预构build步骤来完成这项工作,那将是非常好的。

所以…回到问题:这可以用凉亭来完成吗?

更新的答案

如果您尝试更新所有软件包,请使用

 $ bower update 

原始答复

转到您的bower.json文件并删除所有要从devDependencies卸载的组件或库。

在你删除了你想要的东西之后,执行 –

 $ bower prune 
  1. 从…开始 –

     "devDependencies": { "angular": "~1.2.15", "angular-ui-router": "~0.2.10", "moment": "~2.5.1" } 
  2. 从文件中删除angular度引用 –

     "devDependencies": { "moment": "~2.5.1" } 
  3. 执行

     $ bower prune 
  4. 看你的angular度依赖关系得到卸载

怎么样

  1. 编辑bower.json
  2. 'rm -Rf bower_components / *'
  3. 凉亭安装

我试图从0.2.3升级到聚合物0.2.4。 我似乎无法find一个快速卸载一组依赖的方法。 所以我只是手动删除bower_components下的聚合物* dir。 但由于某种原因,鲍尔不断记住我有修改了bower.json 0.2.3安装的事件。 一个'rm -Rf bower_component / *'似乎在做这些伎俩。

其实我做了一些有点棘手的事情,但对我来说很有用:

  1. for package in $(ls your_bower_components_folder); do bower uninstall "$package"; done;
  2. bower install

卸载软件包

要删除软件包,您可以使用卸载命令,然后使用您希望删除的软件包的名称。

凉亭卸载

通过列出软件包名称,可以一次删除多个软件包。

凉亭卸载jquery modernizr sass-bootstrap

根据Jumar Polanco的答案在Powershell中使用它,可以通过以下方式以编程方式卸载Bower组件:

在Powershell界面中,导航到bower.json和bower_components文件夹所在的位置。 通常是根应用文件夹。

然后你可以运行:

foreach($package in ls bower_components){bower uninstall $package}

根据软件包的依赖关系,可能需要特别注意这个过程,因为有些提示需要额外的input(Y / n)来继续这个过程(比如依赖冲突)。

我不知道你使用的是什么构build工具,但是如果包含grunt-bowercopy的 Grunt,你可以使用clean选项。 它会在复制出所需的文件之后删除bower_components文件夹(或者您configuration它使用的任何文件夹)。

理想情况下,我更喜欢一些不需要我重新下载每个版本的所有依赖关系的东西,但是只要进行全新的安装就可以find更新的版本。

我正在寻找更好的解决scheme,所以我会更新,如果我find一个。

我一直在使用nombom来做到这一点(作为奖金,它也从头开始重新安装npm包):

https://www.npmjs.com/package/nombom

这是什么结束了通过Windows cmd提示符为我工作:

 forfiles /p .\bower_components /c "cmd /c cd .. && bower uninstall @fname"