Apa yang dimaksud dengan properti "file utama" saat melakukan bower init?

106

Apa gunanya file utama properti saat Anda menjalankan bower init? Saya telah mencari dan banyak orang mengatakan bahwa saat ini tidak ada gunanya.

Benarkah itu? Dokumentasi Bower juga tidak menjelaskannya.

raulricardo21
sumber
3
Sepertinya ada orang lain yang juga bingung dengan ini. Sebagai contoh penulis tutorial bower ini
Simon Bengtsson
Tampaknya definisi mainproperti saat ini sedang dipertanyakan dan diperdebatkan dalam edisi terbuka di repo github bower. Lihat di sini untuk definisi yang diusulkan saat ini dan diskusi: github.com/bower/bower/issues/935
BenjaminGolder

Jawaban:

60

Menurut dokumentasi Bower.io

utama

Jenis yang Direkomendasikan: String atau Array of String

File akting utama yang diperlukan untuk menggunakan paket Anda. Meskipun Bower tidak secara langsung menggunakan file-file ini, mereka terdaftar dengan perintah bower list --json andbower list --paths, sehingga bisa digunakan oleh alat build.

File preprocessor seperti CoffeeScript harus dikompilasi. Jangan menyertakan file yang diperkecil. Nama file tidak boleh diversi (Buruk: package.1.1.0.js; Baik: package.js).

Saya pikir ini lebih untuk manajemen paket, dan membangun alat seperti Grunt dan Brunch. Misalnya, Bootstrap bower.jsonterlihat seperti:

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

Ketika saya membangun di Brunch, itu menarik file-file ini dari bower_componentsfolder saya di publicfolder saya .

Kelly J Andrews
sumber
Apa "dokumentasi"?
0xcaff
5
Ini tidak benar-benar menjawab pertanyaan itu. Dokumentasi tidak menjelaskan peran "Titik akhir utama paket Anda". Anda telah menyatakan relevansi main dengan Brunch, tapi tidak bagaimana hubungannya dengan Bower.
BenjaminGolder
Saya pikir poin yang saya coba buat, adalah bahwa file utama digunakan dalam beberapa alat build sehubungan dengan "ini adalah file yang ingin didistribusikan oleh paket bower saya." Itu masih agak ambigu untuk maksud sebenarnya.
Kelly J Andrews
Jangkar tautan dokumentasi sudah mati. Lihat jawaban @Vivian Spencer untuk pembaruan.
Timothy Gu
9

Menurut Spesifikasi JSON Bower ( https://github.com/bower/spec/blob/master/json.md#main ), properti "main" digunakan untuk membuat daftar file yang terutama digunakan dalam proyek. File yang terdaftar sebenarnya tidak digunakan oleh Bower dengan cara apa pun, mereka tampaknya ada untuk tujuan digunakan oleh alat build lainnya.

Berikut spesifikasi resminya:

utama


Jenis yang Direkomendasikan : Stringatau ArraydariString

File akting utama yang diperlukan untuk menggunakan paket Anda. Meskipun Bower tidak secara langsung menggunakan file-file ini, mereka terdaftar dengan perintah bower list --jsondan bower list --paths, sehingga dapat digunakan oleh alat pembangunan.

  • File preprocessor seperti CoffeeScript harus dikompilasi.
  • Jangan sertakan file yang diperkecil.
  • Nama file tidak boleh diversi (Buruk: package.1.1.0.js; Baik: package.js).
Vivian Spencer
sumber
1
Beberapa perpustakaan tidak akan berfungsi tanpa file utama terdaftar, kabelep menjadi contoh sempurna.
kboom
@kboom saya mungkin memiliki masalah terkait dengan apa yang Anda katakan: misalnya file css pdf.js-viewer tidak akan disalin menggunakan main-bower-files, haruskah saya meletakkannya di main di dalam bower.json? Jika ya, apakah saya benar-benar harus memberikan seluruh jalur untuk setiap file? Terima kasih!
trainoasis