有时,重建整个网站并迫使bower重新安装bower.json中所有软件包的新版本非常有用。
然而,似乎没有办法做到这一点:
$ bower uninstall
bower not-installed 0
不,这只能在逐个包装的基础上运行,即使是一个干净的凉亭安装'使用bower.json。
$ bower install -f -l 0
$
不管怎样,尽管' -f',如果符合依赖关系,这绝对没有。
$ rm -r bower_components
$
!啊胜利! ......等等,这是什么?
rm: bower_components: No such file or directory
噢,这个项目中有一个.bowrc,用于设置安装目录的目录。
运行自定义脚本:
- 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命令来删除本地安装的模块?
看起来像我希望bower卸载的真正基本功能。
(这不是一个非常简单的javascript问题,但我很乐意接受一些挂钩到bower模块的东西,以便在一个简单的节点脚本中实现这一点)
编辑:如果你想要'动机'对于这样的任务,它是这样的:我们有一个jenkins服务器来构建我们的项目并运行测试。然而,由于没有明显的原因,它会定期失败;调查,它几乎总是因为jenkins在构建和运行测试之前只使用git-pull来使用存储库的先前副本来更新到最新版本;结果,之前的bower_components目录就在那里,它充满了各种组件的缓存副本。
以下是#@ $ @#$' d的一些示例,并要求将bower作为强制安装再次运行:
1)一些白痴(> _> fitvids)删除项目的先前标记版本。
2)有些项目从凉亭下移/移动了它的github页面
3)某个项目(> _> jquery)已经改变了在非主要版本修订版中布置文件的方式。
我意识到'正确'解决这个问题的方法是:修复jenkins,以便为每个构建创建一个新的临时目录。 ......但那不在我的掌控之中。
因此,作为构建步骤,我需要自动删除bower组件的方法并强制它们全部重新安装;无论是作为一项艰巨的任务(构建的一部分)还是一个jenkins构建步骤。但是,请记住上面的(3),我们的项目使用.bowerrc,所以它不像简单地删除文件夹那么简单。
如果我可以卸载所有现有的bower组件作为预构建步骤来实现这一点,那就太棒了。
所以...回到问题:这可以用凉亭完成吗?
答案 0 :(得分:148)
更新了答案
如果您尝试更新所有套餐,请使用
$ bower update
原始答案
转到bower.json文件,删除要从devDependencies卸载的所有组件或库。
删除了想要删除的内容后,执行 -
$ bower prune
以 -
开头"devDependencies": {
"angular": "~1.2.15",
"angular-ui-router": "~0.2.10",
"moment": "~2.5.1"
}
从文件中删除角度引用 -
"devDependencies": {
"moment": "~2.5.1"
}
执行
$ bower prune
注意卸载角度依赖项
答案 1 :(得分:10)
怎么样
我试图从0.2.3升级到聚合物0.2.4。我似乎无法找到一种快速卸载一组依赖项的方法。所以我只是在bower_components下手动删除了那些聚合物* dir。但由于某种原因,凉亭一直记得我在修改了bower.json的情况下安装了0.2.3事件。 A' rm -Rf bower_component / *'似乎在做伎俩。
答案 2 :(得分:6)
实际上我做了一些有点棘手的事情,但它对我有用:
for package in $(ls your_bower_components_folder); do bower uninstall "$package"; done;
bower install
答案 3 :(得分:5)
卸载软件包
要删除程序包,可以使用uninstall命令,后跟要删除的程序包的名称。
bower uninstall
可以通过列出软件包名称一次删除多个软件包。
bower uninstall jquery modernizr sass-bootstrap
答案 4 :(得分:0)
调整Jumar Polanco's answer以在Powershell中使用它,可以通过以下方式以编程方式卸载bower组件:
在Powershell界面中,导航到bower.json和bower_components文件夹所在的位置。通常是根应用程序文件夹。
然后你可以运行:
foreach($package in ls bower_components){bower uninstall $package}
根据包的依赖关系,可能需要特别注意该过程,因为可能会出现一些需要额外输入(Y / n)以继续该过程的提示(例如依赖冲突)。
答案 5 :(得分:0)
我不知道您使用的构建工具,但如果它包含grunt-bowercopy的Grunt,您可以使用clean
选项。它会在复制出所需文件后删除bower_components文件夹(或您已配置使用的任何文件夹)。
理想情况下,我更喜欢某些并不需要我重新下载每个版本的所有依赖项的内容,但只是那些进行全新安装的内容会找到更新的版本。
我也在寻找更好的解决方案,所以如果找到的话,我会更新。
答案 6 :(得分:0)
我一直在使用nombom
来做这件事(作为奖励,它还会从头开始重新安装你的npm包):
答案 7 :(得分:0)
这是最终通过Windows cmd提示符为我工作的内容:
forfiles /p .\bower_components /c "cmd /c cd .. && bower uninstall @fname"