SDK의 버전 1.9를 사용하여 빌드 된 Firefox 부가 기능을 패키지하려고 할 때 이상한 문제가 있습니다.cfx xpi 명령으로 addon/lib 디렉토리에서 압축 파일을 삭제 하시겠습니까?
├── data
│ ├── file1.js
│ ├── file2.js
│ ├── jquery.min.js
│ └── uri.js
├── lib
│ ├── file3.js
│ ├── main.js
│ ├── services
│ │ ├── file4.js
│ │ ├── file5.js
│ │ └── file6.js
│ └── uri.js
├── package.json
└── package.json.backup
빌드 프로세스의 일환으로, 나는 uglify.js 통해 data
와 'lib` 디렉토리를 실행하고 있습니다 : 확장 디렉토리 구조는 다음과 같은 것입니다. 이것은 잘 작동하는 것 같습니다. 기본적으로 코드베이스를 다른 위치에 복사하고 uglify를 통해 실행하면 JS 파일이 압축 된 것을 제외하고는 동일한 디렉토리 구조가됩니다.
다음으로 코드를 xpi로 패키징하기 위해 cfx xpi --pkgdir=path/to/ugly/codebase
을 실행합니다.
그때 새로운 디렉토리에 생성 .xpi
를 이동하는 경우
unzip
으로 압축을 풀고 내용을 검사, 내
lib
디렉토리의 대부분은 삭제되었습니다.
data
디렉토리의 파일은 정상입니다.
tree resources/addon_name
resources/addon_name
├── data
│ ├── file1.js
│ ├── file2.js
│ ├── jquery.min.js
│ └── uri.js
└── lib
└── main.js
내가 JS 파일을 추하게하지 않는 경우
는 모든 것이 잘 작동하는 것 같다 그리고 내가 XPI의 압축을 풀 때 내가 기대하는 것처럼 전체 lib 디렉토리를해야합니다.위와 같은 과정이 문제가되지 않는다는 점에 유의하십시오. 코드베이스를 복사하고 그것을 uglify 할 때 그 시점에서 프로세스를 멈추고 lib
디렉토리를 나열 할 수 있습니다. 그것은 내가 기대했던 모든 uglified JS 파일을 포함 할 것이다. 포장을 풀고 압축을 풀고 나면 꺼내야합니다.
새로운 확장 기능으로이 문제를 재현하려고 시도했지만 약간 다른 문제가 발생합니다. 기본적으로 lib
디렉토리의 파일은 압축 여부에 관계없이 패키지에서 삭제됩니다. 기본적으로 내 단계는 다음과 같습니다
mkdir test_extension
cd test_extension && cfx init
touch lib/uri.js // this is
cd .. && cfx xpi pkgdir=test_extension // Have to run this part twice to get ID
mkdir unpack && mv test_textension.xpi unpack
cd unpack
unzip test_extension.xpi
ls resources/test_extension/lib
=> main.js // the uri.js file is missing