有时重建整个站点并强制Bower重新安装bower.json中所有软件包的新版本很有用。
但是,似乎没有任何方法可以做到这一点:
尝试1:
$ bower uninstall
bower not-installed 0
不,即使干净的“ bower安装”使用bower.json,它也只能在逐个软件包的基础上工作。
尝试2:
$ bower install -f -l 0
$
不,尽管有“ -f”,但如果满足依赖项,则绝对不会执行任何操作。
尝试3:
$ 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)一些项目脱离了Bower /移动了github页面
3)某些项目(> _> jquery)更改了在非主要版本修订版中文件布局的方式。
我意识到,此问题的“正确”解决方案是:修复jenkins,以便为每个版本创建一个新的临时目录。...但是那不是我的控制。
因此,作为构建步骤,我需要自动化一种删除Bower组件并将其全部重新安装的方法。作为艰巨的任务(构建的一部分)或詹金斯构建步骤。但是,请记住上面的(3),我们的项目使用.bowerrc,因此它并不像简单地删除文件夹那样简单。
如果我可以卸载所有现有的Bower组件作为完成此工作的预构建步骤,那就太好了。
所以...回到问题:凉亭可以做到吗?