运行bower init时,属性主文件有什么用?我一直在寻找,很多人说它目前没有用处。
这是真的吗? Bower的文档也没有解释它。
答案 0 :(得分:60)
主
推荐类型:字符串或字符串数组
使用您的包所需的主要代理文件。鲍尔 不直接使用这些文件,它们与 命令bower list --json andbower list --paths,因此可以使用它们 通过构建工具。
应该编译像CoffeeScript这样的预处理器文件。不包括 minified files.Filenames不应该版本化(坏: package.1.1.0.js;好:package.js)。
我认为更多的是包管理,以及像Grunt和Brunch这样的构建工具。例如,Bootstrap的bower.json
看起来像:
{
"name": "bootstrap",
"version": "3.0.3",
"main": [
"./dist/css/bootstrap.css",
"./dist/js/bootstrap.js",
"./dist/fonts/glyphicons-halflings-regular.eot",
"./dist/fonts/glyphicons-halflings-regular.svg",
"./dist/fonts/glyphicons-halflings-regular.ttf",
"./dist/fonts/glyphicons-halflings-regular.woff"
],
"ignore": [
"**/.*",
"_config.yml",
"CNAME",
"composer.json",
"CONTRIBUTING.md",
"docs",
"js/tests"
],
"dependencies": {
"jquery": ">= 1.9.0"
}
}
当我构建Brunch时,它会从bower_components
文件夹中的public
文件夹中提取这些文件。
答案 1 :(得分:9)
根据Bower的JSON规范(https://github.com/bower/spec/blob/master/json.md#main),“main”属性用于列出主要在项目中使用的文件。 Bower实际上并没有以任何方式使用所列出的文件,它们显然是出于其他构建工具的目的。
这是官方规范:
主
推荐
的
输入String
Array
或String
使用您的包所需的主要代理文件。虽然Bower不直接使用这些文件,但它们与命令
bower list --json
和bower list --paths
一起列出,因此构建工具可以使用它们。
- 应该编译像CoffeeScript这样的预处理器文件。
- 请勿包含缩小的文件。
- 不应对文件名进行版本控制(错误:package.1.1.0.js; Good:package.js)。