จะเปลี่ยนโฟลเดอร์คอมโพเนนต์เริ่มต้นของ bower ได้อย่างไร


475

ฉันกำลังสร้างโปรเจ็กต์ใหม่ที่ใช้ bower จาก twitter ฉันสร้างcomponent.jsonเพื่อรักษาการพึ่งพาของฉันทั้งหมดเช่น jQuery แล้วฉันจะเรียกว่าทุกอย่างที่ติดตั้งในโฟลเดอร์ชื่อbower install แต่ผมจำเป็นต้องติดตั้งส่วนประกอบในโฟลเดอร์ที่แตกต่างกันเช่นcomponentspublic/components

ฉันได้ลองแก้ไข components.json ของฉันเป็น:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

หรือ:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

ดังที่แสดงไว้ในhttps://github.com/twitter/bower/pull/94แต่มันไม่ทำงาน

คำตอบ:


930

สร้างไฟล์กำหนดค่า Bower.bowerrcในรูทโปรเจ็กต์ (ตรงข้ามกับโฮมไดเรกทอรีของคุณ) ด้วยเนื้อหา:

{
  "directory" : "public/components"
}

ทำงานbower installอีกครั้ง


4
ฉันเปลี่ยนแปลงฉันสามารถเห็นได้เท่านั้นThe value of the json property from .bowerrc is no longer usedและฉันเดาว่าทุกอย่างก็โอเคกับ"directory"อสังหาริมทรัพย์ ขวา? github.com/bower/bower/blob/master/CHANGELOG.md
Sergey Kishenin

11
มันไม่ได้ผลสำหรับฉัน ทำงานใน. bowerrc แต่ไม่ใช่ bower.json ดูเหมือนว่าจะเป็นคุณสมบัติพื้นฐานเช่นนี้ ...
elliottregan

148
ฉันอยากรู้ว่าทำไมสิ่งนี้จะไม่ถูกใส่ในไฟล์ bower.json โดยเฉพาะอย่างยิ่งถ้าเป็นการตั้งค่าต่อโครงการ
Hayden

8
ขึ้นอยู่กับเอกสารนั้นจะต้องอยู่ใน. bowerrc ไม่ใช่ bower.json แปลก ... bower.io/#custom-install-directory
joemfb

20
ใน Windows เพื่อสร้างไฟล์ที่ขึ้นต้นด้วย "." เพียงแค่สร้างไฟล์ที่มีส่วนท้าย "." กล่าวอีกนัยหนึ่งก็คือเรียกว่า ".bowerrc"
PeteK68

76

นอกเหนือจากการแก้ไข.bowerrcเพื่อตั้งค่าพา ธ การติดตั้งเริ่มต้นของคุณคุณยังสามารถตั้งค่าพา ธ การติดตั้งแบบกำหนดเองสำหรับไฟล์ประเภทต่างๆ

มีโหนดแพ็กเกจที่เรียกว่าbower-installerที่จัดเตรียมคำสั่งเดียวสำหรับการจัดการพา ธ การติดตั้งสำรอง

วิ่ง npm install -g bower-installer

ตั้งค่า bower.json ของคุณ

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

รันคำสั่งต่อไปนี้: bower-installer

สิ่งนี้จะติดตั้งcomponents/jquery-ui/themes/start/jquery-ui.cssเพื่อ./src/cssฯลฯ


4
สิ่งนี้ดูมีแนวโน้ม แต่bower_componentsไดเร็กทอรียังคงถูกสร้างและเติมข้อมูล :(
เบ็น

รุ่นใดของซุ้มประตู?
lfender6445

ดูเหมือนจะเป็นธรรมชาติของแพคเกจ คุณสามารถเปิดปัญหาได้ที่นี่github.com/blittle/bower-installer/issuesหรือเขียนสคริปต์ทุบตีเพื่อลบการติดตั้งโพสต์ไดเรกทอรี
lfender6445

1
ฉันคิดว่าไม่มีเหตุผล ฉันไม่ต้องการแพ็คเกจที่ยังดาวน์โหลด repo git เต็มรูปแบบและการอ้างอิงแล้วเพียงคัดลอกไฟล์เฉพาะสำหรับฉัน ... ฉันสามารถกด Ctrl + C ด้วยตัวเอง ฉันหวังว่ามันจะดาวน์โหลดเฉพาะไฟล์เฉพาะสำหรับฉัน
Alendorff

ใช่ฉันได้ยินคุณ ในกรณีนี้ฉันเป็น. bowerrc และชี้ไปที่ public / bower หรือ public / Vendor เพื่อทำให้โครงการง่ายขึ้น
lfender6445

61

ฉันมีปัญหาเดียวกันบน windows 10 นี่คือสิ่งที่แก้ไขปัญหาของฉัน

  1. ลบbower_componentsในโฟลเดอร์รูทของคุณ
  2. สร้าง.bowerrcไฟล์ในรูท
  3. ในไฟล์เขียนรหัสนี้ {"directory" : "public/bower_components"}
  4. เรียกใช้ bower install

คุณควรเห็นโฟลเดอร์ bower_components ในโฟลเดอร์สาธารณะของคุณทันที


23

สิ่งที่ควรกล่าวถึง ...

ตามที่ระบุไว้ข้างต้นโดยผู้มีส่วนร่วมอื่น ๆ โดยใช้.bowerrcไฟล์ที่มี JSON

{ "directory": "some/path" }

มีความจำเป็น - อย่างไรก็ตามคุณอาจพบปัญหาใน Windows ในขณะที่สร้างไฟล์นั้น หาก Windows ให้ข้อความที่ขอร้องให้คุณเพิ่ม " ชื่อไฟล์ " ให้ใช้ตัวแก้ไขข้อความ / IDE เช่น Notepad ++

เพิ่ม JSON ไปยังไฟล์ที่ไม่มีชื่อบันทึกเป็น. bowerrc - คุณทำได้ดี!

อาจเป็นเรื่องง่าย แต่ฉันหวังว่านี่จะช่วยให้ผู้อื่นปวดหัวโดยไม่จำเป็น :)


18
ใน Windows เพื่อสร้างไฟล์ที่ขึ้นต้นด้วย "." เพียงแค่สร้างไฟล์ที่มีส่วนท้าย "." กล่าวอีกนัยหนึ่งก็คือเรียกว่า ".bowerrc"
PeteK68

คุณสามารถทำได้ด้วยการทุบตี git ด้วยเพียงพิมพ์:echo >> .bowerrc
Leandro RR

7

ลองวางcomponents.jsonไฟล์ในpublicไดเรกทอรีของแอปพลิเคชันของคุณแทนที่จะเป็นไดเรกทอรีหลักจากนั้นเรียกใช้อีกครั้งbower install... ลองทำสิ่งนี้ในโฮมไดเรกทอรีของแอพของคุณ:

cp components.json public
cd public
bower install

1
มันเป็นวิธีที่ถูกต้องใช่ไหม? แต่ไม่ดียังนับเป็นคำตอบ
Adam Ramadhan

2
คุณสามารถเขียนสคริปต์ทุบตีbower.shต้องเพิ่มไดเรกทอรีที่คุณต้องการที่จะติดตั้งเช่น `สาธารณะ components.json' แล้วมันจะสร้างคำสั่งดังกล่าวข้างต้น ..
hagope

2
ทั้งสองคำตอบฟังดูแฮ็คสุด ๆ ไม่เป็นที่ต้องการแน่นอน
Jay

-3

สวัสดีฉันเป็นปัญหาเดียวกันและแก้ไขวิธีนี้

ผู้ใช้ windows และ vs ไม่สามารถสร้างไฟล์. bowerrc ได้

ใน cmd ไปที่โฟลเดอร์ใด ๆ

ติดตั้งแพ็คเกจใด ๆ ที่มีไฟล์. bowerrc forexample

bower install angular-local-storage

ปลั๊กอินนี้มีไฟล์. bowerrc คัดลอกและไปที่โครงการของคุณและวางไฟล์นี้

และใน visual studio - solution explorer - แสดงไฟล์ทั้งหมดและรวมถึงโครงการที่เห็นไฟล์. bowerrc

ฉันแก้ไขวิธีนี้ :)


คุณสามารถใช้CygwinหรือCmderเทอร์มินัลเพื่อสร้าง.bowerrcไฟล์
Francis.TM

4
เพียงสร้างไฟล์ด้วยชื่อใด ๆ จากนั้นเปิด PowerShell หรือพร้อมรับคำสั่งแล้วเปลี่ยนชื่อ
TrueWill

คุณสามารถสร้างไฟล์ dot ใน windows โดยระบุชื่อไฟล์เป็น '.name' - ยังไม่หลายคนรู้นี้หลังจากดังนั้นหลายปีของการให้บริการนี้ :)
อเล็กซ์ Paven
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.