คุณสมบัติ "ไฟล์หลัก" เมื่อทำ bower init คืออะไร?


106

อะไรคือการใช้ไฟล์หลักคุณสมบัติเมื่อคุณเรียกใช้ bower init? ฉันมองหาและหลายคนบอกว่าตอนนี้ไม่มีจุดมุ่งหมาย

เป็นเช่นนั้นจริงหรือ? เอกสารของ Bower ไม่ได้อธิบายเช่นกัน


3
ดูเหมือนจะมีคนอื่นสับสนกับเรื่องนี้ด้วย ตัวอย่างผู้เขียนบทช่วยสอนนี้: net.tutsplus.com/tutorials/tools-and-tips/…
Simon Bengtsson

ดูเหมือนว่าคำจำกัดความของmainคุณสมบัติกำลังเป็นที่สงสัยและกำลังเป็นที่ถกเถียงกันในประเด็นที่เปิดอยู่บน repo bower github ดูคำจำกัดความที่เสนอในปัจจุบันและการอภิปรายที่นี่: github.com/bower/bower/issues/935
BenjaminGolder

คำตอบ:


60

ตามเอกสาร Bower.io

หลัก

ประเภทที่แนะนำ: สตริงหรืออาร์เรย์ของสตริง

ไฟล์การแสดงหลักที่จำเป็นในการใช้แพ็คเกจของคุณ แม้ว่า Bower จะไม่ได้ใช้ไฟล์เหล่านี้โดยตรง แต่ก็มีรายการคำสั่ง bower list --json andbower list --paths ดังนั้นจึงสามารถใช้โดย build tools ได้

ควรรวบรวมไฟล์ตัวประมวลผลล่วงหน้าเช่น 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
นี่ตอบคำถามไม่ได้จริงๆ เอกสารประกอบไม่ได้อธิบายบทบาทของ "ปลายทางหลักของแพ็กเกจของคุณ" คุณได้ระบุความเกี่ยวข้องของอาหารมื้อหลักกับอาหารมื้อสาย แต่ไม่ได้ระบุว่าเกี่ยวข้องกับ Bower อย่างไร
BenjaminGolder

ฉันคิดว่าประเด็นที่ฉันพยายามทำคือไฟล์หลักถูกใช้ในเครื่องมือสร้างหลายอย่างเกี่ยวกับ "ไฟล์เหล่านี้เป็นไฟล์ที่แพ็คเกจ bower ของฉันตั้งใจจะแจกจ่าย" มันยังคงคลุมเครือเล็กน้อยว่าเป็นเจตนาที่แท้จริง
Kelly J Andrews

จุดยึดของลิงก์เอกสารนั้นตายแล้ว ดูคำตอบของ @Vivian Spencer สำหรับการอัปเดต
ทิโมธี Gu

9

ตามข้อกำหนด JSON ของ Bower ( https://github.com/bower/spec/blob/master/json.md#main ) คุณสมบัติ "หลัก" จะใช้เพื่อแสดงรายการไฟล์ที่ใช้เป็นหลักในโครงการ ไฟล์ที่อยู่ในรายการไม่ได้ถูกใช้โดย Bower แต่อย่างใดเห็นได้ชัดว่าอยู่ที่นั่นเพื่อจุดประสงค์ในการใช้โดยเครื่องมือสร้างอื่น ๆ

นี่คือข้อกำหนดอย่างเป็นทางการ:

หลัก


ประเภทที่แนะนำ : StringหรือArrayของString

ไฟล์การแสดงหลักที่จำเป็นในการใช้แพ็คเกจของคุณ ในขณะที่ชั้นไม่ได้โดยตรงใช้ไฟล์เหล่านี้พวกเขามีการระบุไว้ด้วยคำสั่งbower list --jsonและbower list --pathsเพื่อให้พวกเขาสามารถใช้โดยการสร้างเครื่องมือ

  • ควรรวบรวมไฟล์ตัวประมวลผลล่วงหน้าเช่น CoffeeScript
  • ไม่รวมไฟล์ที่ย่อขนาด
  • ไม่ควรกำหนดชื่อไฟล์ (Bad: package.1.1.0.js; Good: package.js)

1
ไลบรารีบางแห่งจะไม่สามารถใช้งานได้หากไม่มีไฟล์หลักอยู่ในรายการการต่อสายเพื่อเป็นตัวอย่างที่สมบูรณ์แบบ
kboom

@kboom ฉันอาจมีปัญหาที่เชื่อมต่อกับสิ่งที่คุณกำลังพูด: ตัวอย่างเช่นไฟล์ css ของ pdf.js-viewer จะไม่คัดลอกโดยใช้ไฟล์ main-bower ฉันควรใส่ไว้ใน main ภายใน bower.json หรือไม่ ถ้าใช่ฉันต้องระบุเส้นทางทั้งหมดสำหรับแต่ละไฟล์หรือไม่ ขอบคุณ!
trainoasis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.