【发布时间】:2014-05-20 13:53:15
【问题描述】:
有时重建整个站点并强制 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) 一些项目已经从凉亭下线/移动了它的 github 页面
3) 某些项目 (>_> jquery) 在非主要版本修订中更改了文件的布局方式。
我意识到这个问题的“正确”解决方案是:修复 jenkins,以便它为每个构建创建一个新的临时目录。 ...但这不在我的控制范围内。
因此,作为构建步骤,我需要自动化一种方法来删除凉亭组件并强制重新安装它们;作为 grunt 任务(构建的一部分)或 jenkins 构建步骤。但是,请记住上面的(3),我们的项目使用 .bowerrc,所以它并不像简单地删除一个文件夹那么简单。
如果我可以卸载所有现有的 Bower 组件作为预构建步骤来完成这项工作,那就太好了。
所以...回到问题:这可以用 bower 完成吗?
【问题讨论】:
-
希望这会有所帮助:github.com/bower/bower/issues/240
标签: javascript bower