如何更改Bower的默认组件文件夹?


475

我正在制作一个使用Twitter凉亭的新项目。我创建了一个component.json以维护我的所有依赖,如jquery。然后运行bower install,将所有内容安装在名为的文件夹中components。但是我需要将组件安装在其他文件夹中,例如public/components

我尝试将我的components.json编辑为:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

要么:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

https://github.com/twitter/bower/pull/94所示,但它不起作用。

Answers:


930

在项目根目录(与您的主目录相对)中创建一个Bower配置文件.bowerrc,内容如下:

{
  "directory" : "public/components"
}

bower install再次运行。


4
我只能看到的变更日志The value of the json property from .bowerrc is no longer used,我猜所有"directory"属性都可以。对?github.com/bower/bower/blob/master/CHANGELOG.md
Sergey Kishenin

11
这对我不起作用。适用于.bowerrc,但不适用于bower.json。这似乎是一个基本功能……
elliottregan 2014年

148
我很好奇为什么不将其放在bower.json文件中。尤其是如果它是每个项目的设置。
海顿2014年

8
根据文档,它必须位于.bowerrc中,而不是bower.json中。奇怪的... bower.io/#custom-install-directory
joemfb 2014年

20
在Windows中,要创建以“。”开头的文件,只需创建以“。”结尾的文件即可。换句话说,只需将其命名为“ .bowerrc”即可。
PeteK68

76

除了编辑.bowerrc以设置默认安装路径外,您还可以为不同文件类型设置自定义安装路径。

有一个称为bower-installer的节点程序包,它提供一个命令来管理备用安装路径。

npm install -g bower-installer

设置你的bower.json

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

运行以下命令: bower-installer

这将安装components/jquery-ui/themes/start/jquery-ui.css./src/css,等等


4
这看起来很有希望,但是bower_components仍在创建和填充目录。:(
2015年

什么版本的凉亭?
lfender6445

似乎是包装的性质。您可以在github.com/blittle/bower-installer/issues处打开一个问题,或编写bash脚本以在安装后删除目录。
lfender6445'3

1
我认为没有道理。我不希望该软件包仍然下载完整的git repo和依赖项,然后只为我复制粘贴特定文件...我可以自己按Ctrl + C。我希望它只会为我下载特定文件。
阿伦多夫

是的,我听到你了。在这种情况下,我只是一个.bowerrc并指向public / bower或public / vendor以使该项目保持简单。
lfender6445

61

我在Windows 10上遇到了同样的问题。这就是解决我的问题的原因

  1. bower_components在您的根文件夹中删除
  2. .bowerrc在根目录中创建一个文件
  3. 在文件中编写此代码 {"directory" : "public/bower_components"}
  4. 运行 bower install

您现在应该在公用文件夹中看到bower_components文件夹


23

值得一提的...

如其他贡献者所述,将.bowerrc文件与JSON一起使用

{ "directory": "some/path" }

是必要的-但是,在创建该文件时,您可能会在Windows上遇到问题。如果Windows提示您添加“ 文件名 ”,则只需使用文本编辑器/ IDE(例如Notepad ++)。

将JSON添加到未命名的文件中,另存为.bowerrc-一切顺利!

可能是一个简单的假设,但我希望这可以避免其他不必要的麻烦:)


18
在Windows中,要创建以“。”开头的文件,只需创建以“。”结尾的文件即可。换句话说,只需将其命名为“ .bowerrc”即可。
PeteK68

您也可以使用git bash进行操作,只需键入:echo >> .bowerrc
Leandro RR

7

尝试把 components.json文件public应用程序的目录中,而不是根目录中,然后重新运行bower install...在应用程序的主目录中尝试此操作:

cp components.json public
cd public
bower install

1
是的,这是一种方法,有合法的方法吗?但生病仍算作答案。
亚当·拉马丹

2
你可以写一个bash脚本bower.sh前面加上要安装到,像'公共components.json”那么这将产生上述命令的目录..
hagope

2
这两个答案的声音超级哈克,绝对不可取
周杰伦

-3

嗨,我是同样的问题,并解决此问题。

Windows用户和vs无法创建.bowerrc文件。

在cmd中转到任何文件夹

安装任何包含.bowerrc文件的软件包

bower install angular-local-storage

该插件包含.bowerrc文件。复制该文件,然后转到您的项目并粘贴此文件。

并在Visual Studio(解决方案资源管理器)中显示所有文件,包括看到的项目.bowerrc文件

我通过这种方式解决:)


您可以使用CygwinCmder终端来创建.bowerrc文件。
Francis.TM 2015年

4
只需使用任何名称创建文件,然后打开PowerShell或命令提示符并重命名即可。
TrueWill

您可以在Windows中通过将文件名指定为“ .name”来创建点文件。-经过这么多年的努力,仍然没有多少人知道这一点:)
Alex Paven
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.