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

Posted

技术标签:

【中文标题】如何更改 Bower 的默认组件文件夹?【英文标题】:How to change bower's default components folder? 【发布时间】:2012-12-14 07:52:36 【问题描述】:

我正在制作一个使用来自 twitter 的 bower 的新项目。我创建了一个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所示,但它不起作用。

【问题讨论】:

【参考方案1】:

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

cp components.json public
cd public
bower install

【讨论】:

是的,这可能是一种方法,有合法的方法吗?但我仍然认为这是一个答案。 你可以写一个 bash 脚本bower.sh 来添加你想要安装的目录,比如 `public-components.json' 然后它会生成上面的命令.. 这两个答案听起来都非常老套,绝对不可取【参考方案2】:

在项目根目录(而不是你的主目录)中创建一个Bower configuration file .bowerrc,内容如下:


  "directory" : "public/components"

再次运行bower install

【讨论】:

我更改日志我只能看到The value of the json property from .bowerrc is no longer used,我猜"directory" 属性一切正常。正确的? github.com/bower/bower/blob/master/CHANGELOG.md 这对我不起作用。适用于 .bowerrc,但不适用于 bower.json。这似乎是一个基本功能...... 我很好奇为什么不把它放在 bower.json 文件中。特别是如果它是每个项目的设置。 根据文档,它必须在 .bowerrc 中,而不是 bower.json 中。奇怪...bower.io/#custom-install-directory 在 Windows 中,要创建以“.”开头的文件,只需创建带有尾随“.”的文件。换句话说,就叫它“.bowerrc”吧。【参考方案3】:

除了编辑.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

【讨论】:

这看起来很有希望,但bower_components 目录仍然被创建和填充。 :( 什么版本的凉亭? 似乎是包的性质。你可以在这里打开一个问题github.com/blittle/bower-installer/issues 或编写一个 bash 脚本来删除安装后的目录。 我认为没有任何意义。我不想要仍然下载完整 git repo 和依赖项然后只是为我复制粘贴特定文件的包......我可以自己按 Ctrl+C。我希望它只会为我下载特定的文件。 是的,我听到了。在这种情况下,我只是一个 .bowerrc 并指向 public/bower 或 public/vendor 以保持项目简单。【参考方案4】:

值得一提...

正如上面其他贡献者所说,使用带有 JSON 的 .bowerrc 文件

"directory": "some/path"

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

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

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

【讨论】:

在 Windows 中,要创建以“.”开头的文件,只需创建带有尾随“.”的文件。换句话说,就叫它“.bowerrc”吧。 你也可以用 git bash 来做,只需输入:echo >> .bowerrc【参考方案5】:

你好,我也有同样的问题,用这种方法解决。

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

在 cmd 中转到任何文件夹

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

bower install angular-local-storage

这个插件包含 .bowerrc 文件。复制它并转到您的项目并粘贴此文件。

在 Visual Studio 中 - 解决方案资源管理器 - 显示所有文件并包含项目 看到 .bowerrc 文件

我解决了这个方法:)

【讨论】:

您可以使用CygwinCmder终端创建.bowerrc文件。 只需创建任何名称的文件,然后打开 PowerShell 或命令提示符并重命名它。 您可以通过将文件名指定为“.name”在 Windows 中创建点文件。 - 在提供了这么多年之后仍然没有多少人知道这一点:)【参考方案6】:

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

    删除根文件夹中的bower_components 在根目录下创建.bowerrc 文件 在文件中写下这段代码"directory" : "public/bower_components" 运行bower install

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

【讨论】:

以上是关于如何更改 Bower 的默认组件文件夹?的主要内容,如果未能解决你的问题,请参考以下文章

如何将凉亭组件与sails.js 连接?

指示 bower 默认使用精确版本,而不是范围

Request to https://bower.herokuapp.com failed with 502

自动化构建之bower

bower

理解bower是如何管理依赖的