如何更改bower的默认缓存文件夹?

时间:2013-07-26 12:18:42

标签: bower package-managers

在* nix上,bower使用~/.bower文件夹作为其缓存(包等) 我想将其更改为其他位置。

bower spec文档建议我在storage中配置.bowerrc密钥。

我在项目文件夹中创建了一个,如下所示:

{
  "storage": {
     "cache": "~/blah/cached",
     "git": "~/blah/git_templates"
  }
}

运行bower install - i时,看到它仍然尝试保存到~/.bower

谁能告诉我这里做错了什么?和/或如果有不同的方式来改变位置?

2 个答案:

答案 0 :(得分:23)

我遇到了同样的问题,根据规范进行了一些尝试后,我放弃了......

所以我在github上回顾了bower的历史,发现:

  • v0.10.0之前,bower使用 config.cache lib/core/ResolveCache.js)作为其缓存位置
  • 之后,satazor重写了bower的核心,现在开始使用 config.storage.cache ,我打赌此时spec doc已被写入。来自规范:
  

存储[对象]

     

在哪里存储bower所需的持久性数据,例如缓存。默认为>的路径适用于操作系统/平台。有效密钥为cacheregistrylinkscompletion

  • 但是,在this提交后,satazor现在使用 config.storage.packages 而不是的config.storage .cache

  • 之后,在v1.0.0版本中,config始终设置为config.storage.packages,但规范自此以来未反映此更改

解决方案

  • 导出环境变量bower_storage__packages
  • 使用.bowerrc,例如:

    {
      "storage":{
          "packages":"/path/to/cache"
      }
    }
    

P.S。:我认为链接Google Docs中的规范文档并不是一个好主意,也许github会是一个更明智的选择(因为我们可以发出拉取请求)。

答案 1 :(得分:4)

您使用的是什么版本的凉亭? Bower 1.0.0不再使用〜/ .bower。它遵循XDG规范,http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

“storage”属性仅对1.0.0有效。