做bower init时的“主文件”属性是什么?

时间:2013-12-05 04:54:47

标签: bower

运行bower init时,属性主文件有什么用?我一直在寻找,很多人说它目前没有用处。

这是真的吗? Bower的文档也没有解释它。

2 个答案:

答案 0 :(得分:60)

根据Bower.io documentation

  

     

推荐类型:字符串或字符串数​​组

     

使用您的包所需的主要代理文件。鲍尔   不直接使用这些文件,它们与   命令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

ArrayString      

使用您的包所需的主要代理文件。虽然Bower不直接使用这些文件,但它们与命令bower list --jsonbower list --paths一起列出,因此构建工具可以使用它们。

     
      
  • 应该编译像CoffeeScript这样的预处理器文件。
  •   
  • 请勿包含缩小的文件。
  •   
  • 不应对文件名进行版本控制(错误:package.1.1.0.js; Good:package.js)。
  •