Bower 和文件夹结构

Bower and folder structure

假设我要安装 jQuery UI。我执行命令 bower install jquery-ui,Bower 将下载:

.
├── bower_components
│   ├── jquery
│   │   ├── dist
│   │   │   ├── jquery.js
│   │   │   └── jquery.min.js
│   │   └── src
│   └── jquery-ui
│       ├── themes
│       │   ├── smoothness
│       │   │   ├── jquery-ui.css
│       │   │   └── jquery-ui.min.css
│       │   └── [The rest of jQuery UI's themes]
│       ├── ui
│       │   ├── accordion.js
│       │   ├── autocomplete.js
│       │   └── ...
│       ├── jquery-ui.js
│       └── jquery-ui.min.js
└── index.html

下载完成后,将文件包含在我的 index.html 中,我将不得不写一些类似 bower_components/jquery/dist/jquery.min.jsbower_components/jquery-ui/jquery-ui.min.js 和 css bower_components/jquery-ui/themes/smoo...

我习惯于使用更简单的文件夹结构,如下所示:

.
├── css
│   ├── main.css
│   └── slider.css
├── js
│   ├── jquery.min.js
│   └── jquery-ui.min.js
├── index.html
├── contact.html
└── pricing.html

我想知道是否有任何方法可以让 bower 自动将 dist 文件下载到我的 css, js 文件夹,而不管我正在安装什么?

Bower 用于一件事 - 获取这些组件的最新版本并确保您获得所需的所有文件。

Bower 只做一项工作,并用作 "build pipeline" 的一部分。然后你应该使用第二个工具,比如 Grunt or Gulp,或者如果你愿意,只使用带有复制命令的批处理 file/shell 脚本,只将你需要的文件从 bower_components 复制到您想要的文件夹结构。使用 Grunt 和 Gulp,此步骤还可以包括脚本和样式表的捆绑或缩小,甚至将图像转换为 sprite 表。

就是说,如果您不介意转储 所有 Bower 将从某个组件拉下来的文件到您的结构中(可能会留下很多垃圾,您不会想要,考虑到你问题中的细节),你可以 use the .bowerrc file 更改输出目录。

(TL;DR: Bower 就像宜家,以平板包装运送零件 - 你不能把包裹放在客厅里并期望它已经是 table,但你可以写一些东西知道包中有什么并且 assemble 正是您想要的,而无需手动寻找各个部分。或者您可以只打开一次包并手动获取您想要的东西,而不再使用 Bower - 没有任何问题那个。)

我使用 wiredep 和 gulp.js 或 Grunt.js 来包含我的应用程序需要的任何依赖项:

它允许您自动插入您的应用程序需要的任何 bower 包 运行。将 "wiredep" 作为任务添加到任何 gulp.js 或 Grunt.js 构建任务中。