codebase นี้เลิกใช้แล้ว ตั้งแต่ Adblock Plus 3.11 เป็นต้นไป Adblock Plus สำหรับ Chrome, Firefox, Microsoft Edge และ Opera นั้นใช้พื้นที่เก็บข้อมูล adblockplusui
การพัฒนาการบูรณาการการบล็อกโฆษณาหลักสำหรับส่วนขยายเว็บได้ย้ายไปยังพื้นที่เก็บข้อมูล webext-sdk
พื้นที่เก็บข้อมูลนี้มีซอร์สโค้ด Adblock Plus เฉพาะแพลตฟอร์มสำหรับ Chrome, Opera, Microsoft Edge และ Firefox สามารถใช้สร้าง Adblock Plus สำหรับแพลตฟอร์มเหล่านี้ได้
บน Windows คุณต้องมีสภาพแวดล้อม Linux ที่ทำงานบน WSL จากนั้นติดตั้งข้อกำหนดข้างต้นและรันคำสั่งด้านล่างจากภายใน Bash
โคลนที่เก็บข้อมูลภายนอก:
git submodule update --init --recursive
หมายเหตุ: เมื่อสร้างจากไฟล์เก็บถาวรต้นทาง จะต้องข้ามขั้นตอนนี้
ติดตั้งแพ็คเกจ npm ที่จำเป็น:
npm install
รันคำสั่งข้างต้นอีกครั้งเมื่อการขึ้นต่อกันอาจเปลี่ยนแปลง เช่น หลังจากตรวจสอบการแก้ไขใหม่
รันคำสั่งต่อไปนี้ในไดเร็กทอรีโครงการ:
npx gulp build -t {chrome|firefox} [-c development]
สิ่งนี้จะสร้างบิลด์ที่มีชื่อในรูปแบบ adblockpluschrome-nnnzip หรือ adblockplusfirefox-nnnxpi งานสร้างเหล่านี้ไม่ได้ลงนาม สามารถส่งได้ตามสภาพที่เป็นอยู่ไปยังร้านค้าส่วนขยาย หรือหากคลายการแพ็กโหลดในโหมดการพัฒนาสำหรับการทดสอบ (เหมือนกับการสร้าง devenv ด้านล่าง)
เพื่อให้กระบวนการทดสอบการเปลี่ยนแปลงของคุณง่ายขึ้น คุณสามารถสร้างสภาพแวดล้อมการพัฒนาที่คลายแพ็กได้ เพื่อรันคำสั่งใดคำสั่งหนึ่งต่อไปนี้:
npx gulp devenv -t {chrome|firefox}
สิ่งนี้จะสร้างไดเร็กทอรี devenv.* ในไดเร็กทอรีโปรเจ็กต์ คุณสามารถโหลดไดเร็กทอรีเป็นส่วนขยายที่คลายแพ็กได้ภายใต้ chrome://extensions ในเบราว์เซอร์ที่ใช้ Chromium และภายใต้ about:debugging ใน Firefox หลังจากทำการเปลี่ยนแปลงซอร์สโค้ดแล้ว ให้รันคำสั่งอีกครั้งเพื่ออัปเดตสภาพแวดล้อมการพัฒนา และส่วนขยายควรโหลดซ้ำโดยอัตโนมัติหลังจากผ่านไปไม่กี่วินาที
หากคุณต้องการสร้างส่วนขยายตามโค้ดของเราและใช้เครื่องมือสร้างเดียวกัน เราเสนอตัวเลือกการปรับแต่งบางอย่าง
ซึ่งสามารถทำได้โดย:
การระบุพาธไปยังไฟล์คอนฟิกูเรชันใหม่ที่เกี่ยวข้องกับ gulpfile.mjs
(ควรตรงกับโครงสร้างที่พบใน build/config/
)
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
การระบุพาธไปยังไฟล์ manifest.json
ใหม่ที่เกี่ยวข้องกับ gulpfile.mjs
คุณควรตรวจสอบ build/manifest.json
และ build/tasks/manifest.mjs
เพื่อดูว่าเราแก้ไขมันอย่างไร
npx gulp {build|devenv} -t {chrome|firefox} -m manifest.json
เพื่อตรวจสอบการเปลี่ยนแปลงของคุณ คุณสามารถใช้ชุดการทดสอบหน่วยที่อยู่ในไดเร็กทอรี qunit ของที่เก็บ ในการรันการทดสอบหน่วย ให้ไปที่หน้าตัวเลือกของส่วนขยาย เปิดคอนโซล JavaScript แล้วพิมพ์:
location.href = "qunit/index.html";
การทดสอบหน่วยจะทำงานโดยอัตโนมัติเมื่อโหลดหน้าเว็บ
นอกจากนี้ยังมีตัวรันการทดสอบภายนอกที่สามารถเรียกใช้จากบรรทัดคำสั่งเพื่อรันการทดสอบหน่วยพร้อมกับการทดสอบการรวมบนเบราว์เซอร์ที่แตกต่างกัน และรัน linter โดยอัตโนมัติเช่นกัน
บน Windows เพื่อใช้ตัวรันการทดสอบ นอกเหนือจากการตั้งค่าสภาพแวดล้อม Linux ตามที่อธิบายไว้ข้างต้น คุณต้องติดตั้ง Node.js ในสภาพแวดล้อม Windows ดั้งเดิมของคุณ จากนั้นเรียกใช้คำสั่งด้านล่างจากภายใน PowerShell หรือ cmd.exe (ไม่เหมือนกับเมื่อสร้างส่วนขยายที่ต้องทำจาก Bash)
บน Linux Chromium เวอร์ชันใหม่กว่าต้องใช้ libgbm
ตรวจสอบให้แน่ใจว่าได้ติดตั้งแพ็คเกจที่จำเป็นและเป็นปัจจุบัน:
npm install
เริ่มกระบวนการทดสอบสำหรับเบราว์เซอร์ทั้งหมด:
npm test
เริ่มกระบวนการทดสอบในเบราว์เซอร์เดียวเท่านั้น:
npm test -- -g <Firefox|Chromium|Edge>
หากต้องการรันชุดย่อยการทดสอบอื่นๆ โปรดตรวจสอบตัวเลือก -g
ในเอกสารประกอบของ Mocha
โดยค่าเริ่มต้น จะดาวน์โหลด (และแคช) และทำการทดสอบกับเวอร์ชันที่เก่าที่สุดที่เข้ากันได้และเวอร์ชันล่าสุดของแต่ละเบราว์เซอร์ เพื่อดำเนินการทดสอบกับเวอร์ชันอื่นให้ตั้งค่าตัวแปรสภาพแวดล้อม CHROMIUM_BINARY
, FIREFOX_BINARY
หรือ EDGE_BINARY
ยอมรับค่าต่อไปนี้:
installed
path:<path>
download:<version>
<major>.<minor>
สำหรับ Chromium จะต้องเป็นหมายเลขการแก้ไข) ตัวเลือกนี้ใช้ไม่ได้กับ Edge ชุดย่อยการทดสอบตัวกรองใช้หน้าทดสอบ ABP เพื่อที่จะรันการทดสอบเหล่านั้นบนหน้าทดสอบเวอร์ชันอื่น ให้ตั้งค่าตัวแปรสภาพแวดล้อม TEST_PAGES_URL นอกจากนี้ เพื่อยอมรับใบรับรอง https
ที่ไม่ปลอดภัย ให้ตั้งค่าตัวแปรสภาพแวดล้อม TEST_PAGES_INSECURE เป็น "true"
ต้องติดตั้ง Edge Chromium ก่อนทำการทดสอบ Edge
คุณสามารถขย้ำโค้ดได้โดยใช้ ESLint
คุณจะต้องตั้งค่าก่อน สิ่งนี้จะติดตั้งการกำหนดค่า eslint-config-eyeo และทุกสิ่งที่จำเป็นหลังจากที่คุณรัน:
npm install
จากนั้นคุณสามารถเรียกใช้เพื่อขย้ำโค้ดได้:
npm run lint