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.


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.


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).

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.