javascript - 你如何卸载你所有的 bower 包?

标签 javascript bower

有时重建整个站点并强制 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 服务器来构建我们的项目并运行测试。但是,它会周期性地无缘无故地失败;调查,这几乎是 always 因为 jenkins 在构建和运行测试之前只使用 git-pull 更新到最新版本的存储库的先前副本;结果,以前的 bower_components 目录就在那里,里面全是各种组件的缓存副本。

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

1) 一些白痴 (>_> fitvids) 删除了项目的先前标记版本。

2) 一些项目已经离开 bower/移动了它的 github 页面

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

我意识到这个问题的“正确”解决方案是:修复 jenkins 以便它为每个构建创建一个新的临时目录。 ...但这不在我的控制范围内。

因此,作为构建步骤,我需要自动删除 Bower 组件并强制重新安装它们;作为 grunt 任务(构建的一部分)或 jenkins 构建步骤。但是,请记住上面的(3),我们的项目使用.bowerrc,所以它不是简单地删除文件夹那么简单。

如果我可以卸载所有现有的 Bower 组件作为预构建步骤来完成这项工作,那就太好了。

所以...回到问题:这可以用 Bower 完成吗?

最佳答案

更新的答案

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

$ 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 依赖项被卸载

关于javascript - 你如何卸载你所有的 bower 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22927370/

相关文章:

node.js - Bower 安装后缺少 bower_components 文件夹

javascript - 类内的 CSS id

javascript - 如何引用包含对象?

frontend - Bower 包管理的 list JSON 是什么

javascript - WordPress 插件开发 w/JS 库依赖项?带源管理的最佳长期方法?

node.js - 代理背后的 bower - 摘要

JavaScript - 设置函数返回基于 1 或 2 个选定标签的所有项目(无 jQUERY)

javascript - 如何在我的网站上启用 Google map 中的旅游景点图标?

javascript - 使用 javascript(无 jQuery)将第一个元素之后的所有元素添加到 div

javascript - MQTT JavaScript 客户端未连接(协议(protocol)错误?)