Jaka jest właściwość „main file” podczas wykonywania bower init?

106

Jaki jest pożytek z głównego pliku właściwości podczas uruchamiania bower init? Szukałem i wiele osób mówi, że obecnie nie ma to żadnego celu.

Czy to prawda? Dokumentacja Bowera też tego nie wyjaśnia.

raulricardo21
źródło
3
Wydaje się, że inni też są tym zdezorientowani. Na przykład autor tego samouczka łucznika
Simon Bengtsson,
Wygląda na to, że definicja mainnieruchomości jest obecnie kwestionowana i dyskutowana w otwartym numerze na repozytorium altany na githubie. Spójrz tutaj na aktualne proponowane definicje i dyskusję: github.com/bower/bower/issues/935
BenjaminGolder

Odpowiedzi:

60

Zgodnie z dokumentacją Bower.io

Główny

Zalecany typ: ciąg lub tablica ciągów

Podstawowe pliki aktorskie niezbędne do korzystania z pakietu. Chociaż Bower nie używa bezpośrednio tych plików, są one wymienione z poleceniami bower list --json ibower list --paths, dzięki czemu mogą być używane przez narzędzia do budowania.

Pliki preprocesora, takie jak CoffeeScript, powinny zostać skompilowane. Nie dołączaj plików zminimalizowanych. Nazwy plików nie powinny być wersjonowane (źle: package.1.1.0.js; dobrze: package.js).

Myślę, że chodzi bardziej o zarządzanie pakietami i narzędzia do budowania, takie jak Grunt i Brunch. Na przykład Bootstrap bower.jsonwygląda następująco:

{
  "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"
  }
}

Kiedy buduję w Brunch, pobiera te pliki z mojego bower_componentsfolderu w moim publicfolderze.

Kelly J Andrews
źródło
Jaka „dokumentacja”?
0xcaff
5
To naprawdę nie odpowiada na pytanie. Dokumentacja nie wyjaśnia roli „głównych punktów końcowych pakietu”. Podałeś znaczenie main dla brunchu, ale nie jak odnosi się do Bower.
BenjaminGolder
Myślę, że chciałem zwrócić uwagę na to, że główne pliki są wykorzystywane w kilku narzędziach do budowania w odniesieniu do „to są pliki, które mój pakiet bower zamierza rozprowadzać”. To wciąż jest odrobinę niejednoznaczne, jeśli chodzi o jego prawdziwy zamiar.
Kelly J Andrews
Kotwica linku do dokumentacji jest martwa. Zobacz odpowiedź @Vivian Spencer, aby uzyskać aktualizację.
Timothy Gu
9

Zgodnie ze specyfikacją JSON firmy Bower ( https://github.com/bower/spec/blob/master/json.md#main ) właściwość „main” służy do wyświetlania listy plików używanych głównie w projekcie. Wymienione pliki nie są w rzeczywistości używane przez Bower w żaden sposób, najwyraźniej są tam w celu wykorzystania przez inne narzędzia do budowania.

Oto oficjalna specyfikacja:

Główny

Zalecany
typ: Stringlub ArrayzString

Podstawowe pliki aktorskie niezbędne do korzystania z pakietu. Choć Bower nie bezpośrednio korzystać z tych plików są wymienione z poleceniami bower list --jsoni bower list --paths, dzięki czemu mogą one być wykorzystywane przez narzędzia kompilacji.

  • Pliki preprocesora, takie jak CoffeeScript, powinny zostać skompilowane.
  • Nie dołączaj zminimalizowanych plików.
  • Nazwy plików nie powinny być wersjonowane (źle: pakiet.1.1.0.js; dobrze: pakiet.js).
Vivian Spencer
źródło
1
Niektóre biblioteki po prostu nie będą działać bez głównych plików, których najlepszym przykładem jest połączenie przewodowe.
kboom
@kboom Być może problem jest powiązany z tym, co mówisz: na przykład plik css przeglądarki pdf.js-viewera nie zostanie skopiowany przy użyciu plików main-bower, czy powinienem umieścić go w pliku main wewnątrz bower.json? Jeśli tak, czy rzeczywiście muszę podawać pełną ścieżkę do każdego pliku? dzięki!
trainoasis