Firefox 애드온 개발 환경을 구축해 보았다 (Windows)
참고 사이트
ぇtp // 우ぇbp로g 라메 rs-bぉg. 코 m / 후레 후우 x - 아동 / 후 레후 후 x - 아 - 온 - sdk - 2014 /
또한 위의 페이지에서 링크되어 있는 htps : // v. 모잖아. jp / 2011/08 / 아 d-on-sdk-in s ta-lk 나가토 / 도 참고가 됩니다.
위의 사이트가 상세하기 때문에 참고하면 환경 구축은 할 수 있습니다만, 여기에서는 스크린샷과 함께 작업 순서를 정리해 보았습니다! 자세한 설명은 생략하고 있으므로 양해 바랍니다.
개발 환경 준비
Python2 시스템 설치
후술하는 애드온 개발 환경인 AddOnSdk가 Python으로 쓰여져 있기 때문에, Python2계의 인스톨한다. Python3 시스템은 AddOnSdk에서 아직 지원되지 않습니다.
Python2 시스템 설치
후술하는 애드온 개발 환경인 AddOnSdk가 Python으로 쓰여져 있기 때문에, Python2계의 인스톨한다. Python3 시스템은 AddOnSdk에서 아직 지원되지 않습니다.
C:\Python27
에 설치한 경우 Windows 환경 변수에 C:\Python27;
를 추가합니다. python -V
를 입력하여 설치된 버전을 확인합니다. AddOnSdk 설치
C:\addon-sdk-1.17
로 명령 프롬프트로 이동하고 bin\activate
를 실행합니다. 종료할 때는 deactivate
를 실행한다. C:\addon-sdk-1.17\bin\activate.bat
바로 가기 만들기activate.bat
를 복사하여 바로 가기를 붙여넣습니다. C:\Windows\System32\cmd.exe /K C:\addon-sdk-1.17\bin\activate.bat
와 같이 변경한다. C:\addon-sdk-1.17
로 한다. 우선 무언가를 움직여 보자.
참고
Hello world 프로젝트 만들기
(C:\addon-sdk-1.17) C:\addon-sdk-1.17>mkdir hello_world
(C:\addon-sdk-1.17) C:\addon-sdk-1.17>cd hello_world
(C:\addon-sdk-1.17) C:\addon-sdk-1.17\hello_world>cfx init
* lib directory created
* data directory created
* test directory created
* generated jID automatically: jid1-jEpLjcEnpIoIww
* package.json written
* test/test-main.js written
* lib/main.js written
Your sample add-on is now ready.
Do "cfx test" to test it and "cfx run" to try it. Have fun!
lib/main.js에 샘플 코드 복사
main.jsvar buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Visit Mozilla",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
function handleClick(state) {
tabs.open("http://www.mozilla.org/");
}
아이콘 이미지를 가져오고 data 폴더에 배치
(C:\addon-sdk-1.17) C:\addon-sdk-1.17>mkdir hello_world
(C:\addon-sdk-1.17) C:\addon-sdk-1.17>cd hello_world
(C:\addon-sdk-1.17) C:\addon-sdk-1.17\hello_world>cfx init
* lib directory created
* data directory created
* test directory created
* generated jID automatically: jid1-jEpLjcEnpIoIww
* package.json written
* test/test-main.js written
* lib/main.js written
Your sample add-on is now ready.
Do "cfx test" to test it and "cfx run" to try it. Have fun!
var buttons = require('sdk/ui/button/action');
var tabs = require("sdk/tabs");
var button = buttons.ActionButton({
id: "mozilla-link",
label: "Visit Mozilla",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
function handleClick(state) {
tabs.open("http://www.mozilla.org/");
}
편의상 IDE를 사용해 보았습니다.
실행
(C:\addon-sdk-1.17) C:\addon-sdk-1.17\hello_world>cfx run
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\daichi\appdata\local\temp\tmpeuwlsh.mozrunner'.
Firefox가 시작! 추가된 Firefox 아이콘을 클릭하면 Mozilla 페이지가 열립니다.
애드온 패키징
(C:\addon-sdk-1.17) C:\addon-sdk-1.17\hello_world>cfx xpi
Exporting extension to hello_world.xpi.
hello_world.xpi
가 생성되었습니다. 이것을 좋아하는 Firefox에 드래그 앤 드롭하여 설치합니다.
설치에 성공!
이제 한 가지 흐름을 확인할 수 있었습니다.
하고 싶은 일 구현
이번에는 특정 URL 페이지를 열 때 HTML을 다시 작성하고 스크립트를 삽입하고 싶었으므로 아래 링크의 샘플 코드를 사용했습니다.
htps : //로 ゔぇぺぺr. 모잖아. rg / an-u S / ad-on s / SDK / thoto ls / moe fy in g_u b_page s_base d_on_u RL
main.js
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Import the self API
var self = require("sdk/self");
// Create a page mod
// It will run a script whenever a ".org" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
include: "*.org",
contentScriptFile: [
self.data.url("jquery-1.11.1.js"),
self.data.url("my-script.js")
]
});
이제 URL이 *.org와 일치하면 data 이하인 jquery-1.11.1.js
및 my-script.js
가 로드됩니다.
jQuery는 편리하기 때문에 파일 이름 등은 바꾸어 샘플 코드를 거의 그대로 이용했습니다.
(C:\addon-sdk-1.17) C:\addon-sdk-1.17\hello_world>cfx run
Using binary at 'C:\Program Files (x86)\Mozilla Firefox\firefox.exe'.
Using profile at 'c:\users\daichi\appdata\local\temp\tmpeuwlsh.mozrunner'.
(C:\addon-sdk-1.17) C:\addon-sdk-1.17\hello_world>cfx xpi
Exporting extension to hello_world.xpi.
hello_world.xpi
가 생성되었습니다. 이것을 좋아하는 Firefox에 드래그 앤 드롭하여 설치합니다.설치에 성공!
이제 한 가지 흐름을 확인할 수 있었습니다.
하고 싶은 일 구현
이번에는 특정 URL 페이지를 열 때 HTML을 다시 작성하고 스크립트를 삽입하고 싶었으므로 아래 링크의 샘플 코드를 사용했습니다.
htps : //로 ゔぇぺぺr. 모잖아. rg / an-u S / ad-on s / SDK / thoto ls / moe fy in g_u b_page s_base d_on_u RL
main.js
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Import the self API
var self = require("sdk/self");
// Create a page mod
// It will run a script whenever a ".org" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
include: "*.org",
contentScriptFile: [
self.data.url("jquery-1.11.1.js"),
self.data.url("my-script.js")
]
});
이제 URL이 *.org와 일치하면 data 이하인 jquery-1.11.1.js
및 my-script.js
가 로드됩니다.
jQuery는 편리하기 때문에 파일 이름 등은 바꾸어 샘플 코드를 거의 그대로 이용했습니다.
// Import the page-mod API
var pageMod = require("sdk/page-mod");
// Import the self API
var self = require("sdk/self");
// Create a page mod
// It will run a script whenever a ".org" URL is loaded
// The script replaces the page contents with a message
pageMod.PageMod({
include: "*.org",
contentScriptFile: [
self.data.url("jquery-1.11.1.js"),
self.data.url("my-script.js")
]
});
이런 느낌
my-script.js
$(document).ready(function(){
$("html").html("<h1>Hello World!</h1>");
});
이것으로 움직였습니다!
아직 모르는 일도 많습니다만, 버전마다 개발 방법도 바뀌는 것 같아 정보가 적은 것 같았습니다.
만약 그 밖에도 편리한 개발 방법이 있으면 가르쳐 주시면 다행입니다!
Reference
이 문제에 관하여(Firefox 애드온 개발 환경을 구축해 보았다 (Windows)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/daichi87gi/items/6c4b308f0ede169e10bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)