이 코드베이스는 더 이상 사용되지 않습니다. Adblock Plus 3.11부터 Chrome, Firefox, Microsoft Edge 및 Opera용 Adblock Plus는 adblockplusui 저장소를 기반으로 합니다.
웹 확장을 위한 핵심 광고 차단 통합 개발이 webext-sdk 저장소로 이동되었습니다.
이 저장소에는 Chrome, Opera, Microsoft Edge 및 Firefox용 플랫폼별 Adblock Plus 소스 코드가 포함되어 있습니다. 이러한 플랫폼을 위한 Adblock Plus를 구축하는 데 사용할 수 있습니다.
Windows의 경우 WSL에서 실행되는 Linux 환경이 필요합니다. 그런 다음 위의 요구 사항을 설치하고 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.* 디렉터리가 생성됩니다. Chromium 기반 브라우저에서는 chrome://extensions , Firefox에서는 about:debugging 아래에 압축이 풀린 확장 프로그램으로 디렉터리를 로드할 수 있습니다. 소스 코드를 변경한 후 명령을 다시 실행하여 개발 환경을 업데이트하면 몇 초 후에 확장 프로그램이 자동으로 다시 로드됩니다.
코드를 기반으로 확장을 생성하고 동일한 빌드 도구를 사용하려는 경우 몇 가지 사용자 정의 옵션을 제공합니다.
이는 다음을 통해 수행할 수 있습니다.
gulpfile.mjs
기준으로 새 구성 파일의 경로를 지정합니다( build/config/
에 있는 구조와 일치해야 함).
npx gulp {build|devenv} -t {chrome|firefox} --config config.mjs
gulpfile.mjs
를 기준으로 새 manifest.json
파일의 경로를 지정합니다. 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 환경을 설정하는 것 외에도 기본 Windows 환경에 Node.js를 설치해야 합니다. 그런 다음 PowerShell 또는 cmd.exe 내에서 아래 명령을 실행합니다(Bash에서 수행해야 하는 확장을 빌드할 때와는 다름).
Linux에서 최신 버전의 Chromium에는 libgbm
필요합니다.
필수 패키지가 설치되어 있고 최신 상태인지 확인하세요.
npm install
모든 브라우저에 대한 테스트 프로세스를 시작합니다.
npm test
하나의 브라우저에서만 테스트 프로세스를 시작하십시오.
npm test -- -g <Firefox|Chromium|Edge>
다른 테스트 하위 집합을 실행하려면 Mocha 설명서에서 -g
옵션을 확인하세요.
기본적으로 각 브라우저의 가장 오래된 호환 버전과 최신 릴리스 버전에 대해 테스트를 다운로드(및 캐시)하고 실행합니다. 다른 버전에 대해 테스트를 실행하려면 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 테스트를 실행하기 전에 Edge Chromium을 설치해야 합니다.
ESLint를 사용하여 코드를 린트할 수 있습니다.
먼저 설정을 해야 합니다. 그러면 eslint-config-eyeo 구성과 실행 후 필요한 모든 항목이 설치됩니다.
npm install
그런 다음 다음을 실행하여 코드를 린트할 수 있습니다.
npm run lint