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

Ada*_*han 472 node.js bower

我正在制作一个使用twitter的bower的新项目.我创建了一个component.json像jquery一样维护我所有的依赖.然后我运行bower install它将所有内容安装在一个名为的文件夹中components.但我需要在不同的文件夹中安装组件,例如public/components.

我已经尝试将components.json编辑成:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

要么:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Ada*_*han 929

使用内容在项目根目录(而不是主目录)中创建Bower配置文件.bowerrc:

{
  "directory" : "public/components"
}
Run Code Online (Sandbox Code Playgroud)

再跑bower install一次.

  • 我很好奇为什么不将它放在bower.json文件中.特别是如果它是一个每个项目设置无论如何. (148认同)
  • 在Windows中,要创建以"."开头的文件,只需创建一个尾随"."的文件.换句话说,只需称它为".bowerrc". (20认同)
  • 这对我不起作用.适用于.bowerrc,但不适用于bower.json.这似乎是一个基本功能...... (11认同)
  • 根据文档,它必须是.bowerrc,而不是bower.json.奇怪...... http://bower.io/#custom-install-directory (8认同)
  • 我更改日志我只能看到`来自.bowerrc的json属性的值不再使用了',我想用`"directory"属性一切正常.对?https://github.com/bower/bower/blob/master/CHANGELOG.md (4认同)
  • 在bower v1.0.0中,您如何更新配置? (3认同)
  • 是的,这完全是一种荒谬的荒谬,它无法进入bower.json.您应该弄脏*包管理器*的根目录的概念令人抓狂.叹.但是我还是试着去吧(尽管这就像我使用Bower的第10个项目,我仍然没有看到使用它的好处). (3认同)
  • 仅供参考,使用`echo""> .bowerrc`在Windows中创建此文件.http://stackoverflow.com/questions/20202202/how-do-i-name-the-bowerrc-file (2认同)

lfe*_*445 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"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

运行以下命令: bower-installer

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

  • 这看起来很有希望,但仍然创建并填充了"bower_components"目录.:( (4认同)

Tim*_*ere 58

我在Windows 10上遇到了同样的问题.这就解决了我的问题

  1. bower_components在根文件夹中删除
  2. .bowerrc在根目录中创建一个文件
  3. 在文件中写下这段代码 {"directory" : "public/bower_components"}
  4. 跑一个 bower install

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


Cod*_*ody 23

值得一提的东西......

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

{ "directory": "some/path" }

是必要的 - 但是,在创建该文件时,您可能会在Windows上遇到问题.如果Windows给您一条消息,要求您添加" 文件名 ",只需使用文本编辑器/ IDE,如Notepad ++.

将JSON添加到未命名的文件中,将其保存为.bowerrc - 您很高兴!

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

  • 在Windows中,要创建以"."开头的文件,只需创建一个尾随"."的文件.换句话说,只需称它为".bowerrc". (18认同)

hag*_*ope 8

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

cp components.json public
cd public
bower install
Run Code Online (Sandbox Code Playgroud)

  • 你可以编写一个bash脚本`bower.sh`来预先安装你要安装的目录,比如`public-components.json'然后它会生成上面的命令.. (2认同)
  • 这两个答案听起来都超级黑客,绝对不可取 (2认同)