Що таке властивість "основного файлу" під час виконання bower init?


106

У чому полягає основний файл властивості, коли ви запускаєте bower init? Я дивився, і багато людей говорять, що наразі це не має мети.

Це правда? Документація Бауера також не пояснює цього.


3
Здається, інші також збентежені цим. Наприклад, автор цього навчального посібника: net.tutsplus.com/tutorials/tools-and-tips/…
Саймон Бенгтссон

Здається, що визначення mainвластивості наразі піддається сумніву і обговорюється у відкритому питанні на рефіні. Подивіться тут на запропоновані поточні визначення та обговорення: github.com/bower/bower/isissue/935
BenjaminGolder

Відповіді:


60

Відповідно до документації Bower.io

головний

Рекомендований тип: String або масив String

Основні діючі файли, необхідні для використання вашого пакету. Хоча Bower безпосередньо не використовує ці файли, вони перераховані зі списком команд bower list --json andbower list - paths, тому їх можна використовувати інструментами побудови.

Файли попереднього процесора, такі як CoffeeScript, повинні бути скомпільовані. Не включати в себе мінімізовані файли. Імена файлів не повинні бути розроблені (погано: 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папку.


Що таке "документація"?
0xcaff

5
Це насправді не відповідає на питання. Документація не уточнює роль "Первинних кінцевих точок вашого пакета". Ви заявили про актуальність main для Brunch, але не про те, як це стосується Bower.
БенджамінГолдер

Я думаю, що я намагався зробити те, що основні файли використовуються в декількох інструментах побудови стосовно "це файли, які мій пакет bower має намір поширити". Це все-таки неоднозначно, оскільки це справжній намір.
Келлі Дж. Ендрюс

Якір посилання на документацію мертвий. Дивіться відповідь @Vivian Spencer для оновлення.
Тимофій Гу

9

Згідно зі специфікацією JSON Bower ( https://github.com/bower/spec/blob/master/json.md#main ), "головне" властивість використовується для переліку файлів, які в основному використовуються в проекті. Перераховані файли фактично не використовуються Bower жодним чином, вони, мабуть, є з метою використання іншими інструментами побудови.

Ось офіційна специфікація:

головний

Рекомендований
тип: Stringабо ArrayвідString

Основні діючі файли, необхідні для використання вашого пакету. Хоча Bower безпосередньо не використовує ці файли, вони перераховані з командами bower list --jsonі bower list --paths, тому їх можна використовувати інструментами побудови.

  • Файли попереднього процесу, такі як CoffeeScript, повинні бути складені.
  • Не включайте мінімізовані файли.
  • Імена файлів не повинні бути зміненими (Неправильно: package.1.1.0.js; Добре: package.js).

1
Деякі бібліотеки просто не працюватимуть без перелічених основних файлів, ідеальним прикладом є дротовий провід.
kboom

@kboom У мене може бути проблема, пов’язана з тим, що ви говорите: наприклад, файл css pdf.js-viewer не копіюється за допомогою main-bower-файлів, чи варто мені поставити його в основні bower.json? Якщо так, чи я насправді повинен надати весь шлях для кожного файлу? Дякую!
trainoasis
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.