Bower 是一款使用 Node.js 语言编写的,用于对前端进行包管理的工具。其安装 (npm install -g bower) 和使用 (bower install <package>) 都十分简单。不过,在使用 Bower 的过程中,还是有一些注意点和小技巧的。

最佳实践

不要在 bower.json 中使用 version 字段

目前,Bower 对包的版本管理是通过 git, svn 等代码管理工具中的 tag 来实现的。如 v4.2, 4.5.1 这样的标签可以被 Bower 识别为软件包的版本,从而可以在安装指定的版本时获取到正确的内容。如果未指明版本,Bower 也会从中自动选择最新版本。


与 Bower 通过代码管理工具的 tag 来实现版本管理不同的是,npm 通过注册表 npm registry 来实现包的版本管理。

即只有当一个版本发布在 npm registry 中时,该版本才能够被 npm 工具发现,而与代码库中是否存在该版本的 tag 无关。


然而,在 Bower 的包说明文件 bower.json 中还有一个 version 字段,计划是用于在官方的包注册表中来标识版本号的,但是这样一个官方的包注册机制一直都没有落实,version 字段也从未在 Bower 的任何一个版本中被使用过。

现在,在 Bower 的官方文档中,version 字段也已经被标记为不赞成使用了(deprecated)。

具体可参见:

不要在 bower.jsonmain 字段中放入 .min 文件

main 字段标明了一个项目的入口点,可以是 .js, .ts, .css, .scss 等文件。main 字段是设计给项目中的构建工具使用的,因此,在 main 字段中不应放入编译后或压缩后的文件,而应放入入口文件的原始代码。其文件名也不宜包含版本号,因为这些信息也应由构建工具加入,而不应直接加入到源代码文件中。

关于 main 字段的一些其他最佳实践,还可参见:bower.json specification

使用技巧

.bowerrc 中设置 save 字段

在使用 Bower 对前端所用的包进行依赖管理时,我们常常会执行命令

bower install <package> --save

其中 --save 选项将所下载的包加入到 bower.json 中作为当前项目的依赖。

很多时候,我们下载一个包,就是为了将其加入当前项目的依赖。如果是这样的话,我们可以考虑在 .bowerrc 中设置 save 字段为 true,这样,我们就不需要每次在命令行上指定 --save 选项了。

类似地,命令行上的 --save-exact 选项和 .bowerrc 中的 save-exact 字段对应。

对于 savesave-exact 字段的支持是在 Bower 1.7.8 起的版本中加入的。

具体可参见: