พื้นที่เก็บข้อมูลนี้มีเครื่องมือสร้างที่จำเป็นในการสร้างเบราว์เซอร์เดสก์ท็อป Brave สำหรับ macOS, Windows และ Linux โดยเฉพาะอย่างยิ่ง มันจะดึงข้อมูลและซิงค์โค้ดจากโปรเจ็กต์ที่กำหนดไว้ใน package.json
และ src/brave/DEPS
:
โครเมียม
ดึงรหัสผ่าน depot_tools
ตั้งค่าสาขาสำหรับ Chromium (เช่น 65.0.3325.181)
แกนผู้กล้าหาญ
ติดตั้งที่ src/brave
รักษาแพตช์สำหรับโค้ด Chromium ของบุคคลที่สาม
adblock-สนิม
ใช้งานระบบบล็อกโฆษณาของ Brave
เชื่อมโยงผ่าน Brave/adblock-rust-ffi
คุณสามารถเยี่ยมชมเว็บไซต์ของเราเพื่อรับเวอร์ชันเสถียรล่าสุด
โปรดดูแนวทางการมีส่วนร่วม
Wiki ของเรายังมีข้อมูลทางเทคนิคที่เป็นประโยชน์อีกด้วย
เข้าร่วมชุมชนถามตอบหากคุณต้องการมีส่วนร่วมกับ Brave มากขึ้น คุณสามารถขอความช่วยเหลือ หารือเกี่ยวกับคุณสมบัติที่คุณต้องการดู และอื่นๆ อีกมากมาย เราต้องการความช่วยเหลือจากคุณเพื่อที่เราจะได้สามารถพัฒนา Brave ต่อไปได้
ช่วยเราแปล Brave เป็นภาษาของคุณโดยส่งคำแปลที่ https://explore.transifex.com/brave/brave_en/
ติดตาม @brave บน Twitter เพื่อรับข่าวสารและประกาศสำคัญ
ปฏิบัติตามคำแนะนำสำหรับแพลตฟอร์มของคุณ:
ระบบปฏิบัติการ macOS
ไอโอเอส
หน้าต่าง
ลินุกซ์/แอนดรอยด์
เมื่อคุณติดตั้งข้อกำหนดเบื้องต้นแล้ว คุณสามารถรับโค้ดและเตรียมใช้งานสภาพแวดล้อมบิลด์ได้
โคลน git [email protected]:brave/brave-core.git path-to-your-project-folder/src/bravecd path-to-your-project-folder/src/brave ติดตั้ง npm# ดาวน์โหลดแหล่ง Chromium ซึ่งมีประวัติขนาดใหญ่ (ข้อมูลกิกะไบต์)# การดำเนินการนี้อาจใช้เวลานานมากในการเสร็จสิ้น ทั้งนี้ขึ้นอยู่กับความเร็วอินเทอร์เน็ต npm run init
บิลด์ Android ที่ใช้ Brave-Core ควรใช้ npm run init -- --target_os=android --target_arch=arm
(หรือประเภท CPU ใดก็ตามที่คุณต้องการสร้าง) บิลด์ iOS ที่ใช้ Brave-Core ควรใช้ npm run init -- --target_os=ios
คุณยังสามารถตั้งค่า target_os และ target_arch สำหรับ init และ build โดยใช้:
npm config set target_os android npm config set target_arch arm
พารามิเตอร์เพิ่มเติมที่จำเป็นในการสร้างมีการบันทึกไว้ที่https://github.com/brave/brave-browser/wiki/Build-configuration
นักพัฒนาภายในสามารถค้นหาข้อมูลเพิ่มเติมได้ที่ https://github.com/brave/devops/wiki/%60.env%60-config-for-Brave-Developers
ประเภทการสร้างเริ่มต้นคือส่วนประกอบ
# start the component build compile npm run build
หากต้องการสร้างเวอร์ชันรีลีส:
# start the release compile npm run build Release
บิลด์ Android ที่ใช้ Brave-Core ควรใช้ npm run build -- --target_os=android --target_arch=arm
หรือตั้งค่าตัวแปร npm config ตามที่ระบุไว้ข้างต้นสำหรับ init
บิลด์ iOS ที่ใช้ Brave-Core ควรใช้โปรเจ็กต์ Xcode ที่พบใน ios/brave-ios/App
คุณสามารถเปิดโปรเจ็กต์นี้ได้โดยตรงหรือรัน npm run ios_bootstrap -- --open_xcodeproj
เพื่อเปิดใน Xcode ดูสภาพแวดล้อมของนักพัฒนา iOS สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบิลด์ iOS
การรันรีลีสบิลด์ด้วย npm run build Release
อาจช้ามากและใช้ RAM จำนวนมาก โดยเฉพาะบน Linux ที่มีปลั๊กอิน Gold LLVM
หากต้องการรันบิลด์ที่เชื่อมโยงแบบคงที่ (ใช้เวลาสร้างนานกว่า แต่เริ่มเร็วกว่า):
การสร้างการรัน npm - คงที่
หากต้องการรันบิลด์การดีบัก (คอมโพเนนต์บิลด์ที่มี is_debug=true):
รันบิลด์ npm - ดีบัก
หมายเหตุ: การสร้างจะใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์ อาจใช้เวลาสองสามชั่วโมง ทั้งนี้ขึ้นอยู่กับโปรเซสเซอร์และหน่วยความจำของคุณ
ในการเริ่มสร้าง:
npm start [Release|Component|Static|Debug]
npm run sync -- [--force] [--init] [--create] [brave_core_ref]
การดำเนินการนี้จะพยายามซ่อนการเปลี่ยนแปลงในเครื่องของคุณไว้ใน Brave-Core แต่จะปลอดภัยกว่าหากทำการเปลี่ยนแปลงในเครื่องก่อนที่จะดำเนินการนี้
npm run sync
จะ (ขึ้นอยู่กับแฟล็กด้านล่าง):
- อัปเดตโปรเจ็กต์ย่อย (โครเมียม, Brave-Core) ให้เป็นคอมมิตล่าสุดของการอ้างอิง git (เช่น แท็กหรือสาขา)
- ใช้แพทช์
- อัปเดตการพึ่งพา DEPS ของ gclient
⏩ เรียกใช้ hooks (เช่นเพื่อทำการ npm install
บนโปรเจ็กต์ย่อย)
ธง | คำอธิบาย |
---|---|
[no flags] | อัปเดตโครเมียมหากจำเป็นและใช้แพตช์อีกครั้ง หากเวอร์ชันโครเมียมไม่เปลี่ยนแปลง จะใช้เฉพาะแพตช์ที่มีการเปลี่ยนแปลงเท่านั้น จะอัปเดตการขึ้นต่อกันของเด็ก ก็ต่อเมื่อโปรเจ็กต์ใด ๆ จำเป็นต้องอัปเดตระหว่างการรันสคริปต์นี้ **ใช้สิ่งนี้หากคุณต้องการให้สคริปต์จัดการเพื่อให้คุณได้รับข้อมูลล่าสุด แทนที่จะดึงหรือสลับสาขาด้วยตนเอง - |
--force | อัปเดตทั้ง Chromium และ Brave-Core เป็นการกระทำระยะไกลล่าสุดสำหรับสาขา Brave-Core ปัจจุบันและการอ้างอิง Chromium ที่ระบุใน Brave-browser/package.json (เช่น master หรือ 74.0.0.103 ) จะใช้แพทช์ทั้งหมดอีกครั้ง จะบังคับให้อัปเดตการอ้างอิงย่อยทั้งหมด**ใช้สิ่งนี้หากคุณประสบปัญหาและต้องการบังคับกิ่งก้านให้กลับสู่สถานะที่ทราบ - |
--init | บังคับให้อัปเดตทั้ง Chromium และ Brave-Core เป็นเวอร์ชันที่ระบุใน Brave-browser/package.json และบังคับให้อัปเดต repos ที่ขึ้นต่อกันทั้งหมด - เช่นเดียวกับ npm run init |
--sync_chromium (true/false) | จะบังคับหรือข้ามการอัปเดตเวอร์ชัน Chromium เมื่อทำได้ มีประโยชน์หากคุณต้องการหลีกเลี่ยงการอัปเดตเล็กน้อยเมื่อไม่พร้อมสำหรับเวลาในการสร้างที่มากขึ้น ซึ่งการอัปเดตโครเมียมอาจส่งผลให้เกิด คำเตือนจะแสดงออกมาเกี่ยวกับสถานะโค้ดปัจจุบันที่คาดว่าจะมีเวอร์ชันโครเมียมอื่น การสร้างของคุณอาจล้มเหลวด้วยเหตุนี้ |
-D, --delete_unused_deps | จะลบการอ้างอิงใดๆ ที่ถูกลบออกนับตั้งแต่การซิงค์ครั้งล่าสุดออกจากสำเนาการทำงาน เลียนแบบ gclient sync -D |
เรียกใช้ npm run sync brave_core_ref
เพื่อชำระเงินการอ้างอิง Brave-Core ที่ระบุ และอัปเดต Repos ที่ขึ้นต่อกันทั้งหมด รวมถึง Chromium หากจำเป็น
เบราว์เซอร์ที่กล้าหาญ> cd src/brave Brave-browser/src/brave> git checkout -b Branch_name
Brave-browser/src/brave> git ดึงข้อมูลต้นกำเนิด Brave-browser/src/brave> ชำระเงินคอมไพล์ [-b] Branch_name Brave-browser/src/brave> เรียกใช้การซิงค์ npm ...กำลังอัปเดต 2 แพตช์... ...กำลังอัปเดตการพึ่งพาเด็ก... ...ตะขอวิ่ง...
Brave-browser/src/brave> git pull Brave-browser/src/brave> เรียกใช้การซิงค์ npm ...กำลังอัปเดต 2 แพตช์... ...กำลังอัปเดตการพึ่งพาเด็ก... ...ตะขอวิ่ง...
init
จะส่งผลให้มีบิลด์ที่ยาวขึ้นเสมอ และจะลบการเปลี่ยนแปลงที่ค้างอยู่ในไดเร็กทอรีการทำงานของ Brave-Core ของคุณ):เบราว์เซอร์ที่กล้าหาญ> git checkout master เบราว์เซอร์ที่กล้าหาญ> git pull เบราว์เซอร์ที่กล้าหาญ> npm run sync -- --init
Brave-browser/src/brave> คุณสมบัติการชำระเงิน gitB Brave-browser/src/brave> git pull เบราว์เซอร์ที่กล้าหาญ / src / กล้าหาญ> cd ../.. เบราว์เซอร์ที่กล้าหาญ> npm run Apply_patches ...กำลังใช้ 2 แพทช์...
Google Safe Browsing : รับคีย์ API พร้อมเปิดใช้งาน SafeBrowsing API จาก https://console.developers.google.com/ อัปเดตตัวแปรสภาพแวดล้อม GOOGLE_API_KEY
ด้วยคีย์ของคุณตาม https://www.chromium.org/developers/how-tos/api-keys เพื่อเปิดใช้งาน Google SafeBrowsing
กฎความปลอดภัยจาก Chromium
แนวทางการทบทวน IPC (โดยเฉพาะข้อมูลอ้างอิงนี้)
แนวทางปฏิบัติด้านความปลอดภัยภายในของ Brave (สำหรับพนักงานเท่านั้น)
การใช้งานสนิม
ดูการแก้ไขปัญหาสำหรับวิธีแก้ไขปัญหาทั่วไป