【问题标题】:What is the "main file" property when doing bower init?做凉亭初始化时的“主文件”属性是什么?
【发布时间】:2013-12-21 21:44:52
【问题描述】:

运行 bower init 时属性 ma​​in file 有什么用?我一直在看,很多人说目前没有目的。

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

【问题讨论】:

标签: bower


【解决方案1】:

根据 Bower 的 JSON 规范 (https://github.com/bower/spec/blob/master/json.md#main),“main”属性用于列出项目中主要使用的文件。列出的文件实际上并没有被 Bower 以任何方式使用,它们显然是为了供其他构建工具使用。

这是官方规范:

主要

推荐
类型:StringArray of String

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

  • 应该编译诸如 CoffeeScript 之类的预处理器文件。
  • 不包括缩小文件。
  • 不应对文件名进行版本控制(错误:package.1.1.0.js;良好:package.js)。

【讨论】:

  • 如果没有列出主要文件,某些库将无法工作,wiredep 就是一个完美的例子。
  • @kboom 我的问题可能与您所说的有关:例如 pdf.js-viewer 的 css 文件不会使用 main-bower-files 复制,我应该把它放在 bower.json 中的 main 中吗?如果是,我是否真的必须提供每个文件的完整路径?谢谢!
【解决方案2】:

根据Bower.io documentation

主要

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

使用您的包所需的主要代理文件。而鲍尔 不直接使用这些文件,它们与 命令 bower list --json 和 bower list --paths,因此可以使用它们 通过构建工具。

像 CoffeeScript 这样的预处理器文件应该被编译。不要包含 缩小的文件。不应对文件名进行版本控制(坏: 包.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 文件夹中提取这些文件。

【讨论】:

  • 什么“文档”?
  • 这并不能真正回答问题。该文档没有阐明“包的主要端点”的作用。您已经说明了 main 与早午餐的相关性,但没有说明它与 Bower 的关系。
  • 我想我想说的是,主要文件在几个构建工具中使用,“这些是我的 bower 包打算分发的文件”。它的真实意图仍然有点模棱两可。
  • 文档链接的锚点已失效。有关更新,请参阅@Vivian Spencer 的回答。
猜你喜欢
  • 1970-01-01
  • 2013-06-15
  • 2013-02-04
  • 1970-01-01
  • 2020-03-19
  • 2014-09-16
  • 2020-12-17
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多