
이 도구는 Webpack과 Browserify에 의해 건전한 JavaScript 번들을 풀도록 만들어진 도구입니다.
이것은 더 이상 유지되지 않는 연구 프로젝트였습니다. 나는 JavaScript 번들이 어떻게 구조되는지 이해하도록 돕기 위해 만들었습니다. 그것은 대부분의 시간 동안 실험실 환경에서 작동하지만 종종 실제 JavaScript 다발에서 실패합니다. 이 프로젝트를 시작한 이래로 오랜 시간이 지났으므로 문제가 발생하면 실제로 많은 도움을 줄 수는 없습니다.
이유는 다르지만이 도구는 원래 리버스 엔지니어링 프로젝트에 도움이되도록 개발되었습니다. 말할 것도없이, 서비스 작동 방식이 재미 있지 않으며 해당 번들이 파일로 나누고 해당 파일이 의미 론적 이름을 가지고있을 때 훨씬 쉬우 며 훨씬 쉬운 방법을 알아 내기 위해 미니스트 번들을 선별합니다.
npm i -g debundle
$ debundle
Usage: debundle [input file] {OPTIONS}
Options:
--input, -i Bundle to debundle
--output, -o Directory to debundle code into.
--config, -c Configuration file
$ curl https://raw.githubusercontent.com/1egoman/debundle/master/test_bundles/browserify/bundle.js > bundle.js
$ curl https://raw.githubusercontent.com/1egoman/debundle/master/test_bundles/browserify/debundle.config.json > debundle.config.json
$ cat debundle.config.json
{
" type " : " browserify " ,
" knownPaths " : {}
}
$ debundle -i bundle.js -o dist/ -c debundle.config.json
$ tree dist/
dist/
├── index.js
└── node_modules
├── number
│ └── index.js
└── uuid
├── index.js
├── lib
│ ├── bytesToUuid.js
│ └── rng.js
├── v1.js
└── v4.js
4 directories, 7 files {
"type": "browserify",
"entryPoint": 1,
"knownPaths": {}
}
(간단한 웹 팩 번들을 디바일하려면 browserify 위의 구성을 webpack 으로 교체하십시오)
구성에는 여러 플래그가있을 수 있습니다. Docs.Md에 문서화되어 있습니다.
아니요. 번들링시 손실되는 메타 데이터가 많이 있습니다.
node_module 및 루트 패키지에 대한 모든 사용자 정의 package.json 설정.1.js )의 이름을 따서 명명 된 파일을 생성합니다.공식적으로는 아닙니다. 그러나 번들이 동일한 유형 모듈 레이아웃을 Browserify 또는 Webpack과 공유하면 모듈의 위치를 가리 키도록 Moduleast 구성 옵션을 설정할 수 있습니다.
npm install 실행하십시오../src/index.js 입니다 (그것이 당신이 그것을 실행하는 방법입니다!)test_bundles/ 에 있습니다. 스크립트, test_bundles/run_test.sh 주어진 번들에 대해 Debundler를 실행하여 dist/ 로 디바일을 시도 할 수 있습니다. (CI는 테스트 실행의 일환으로 해당 폴더의 모든 번들을 분해합니다.)npm test일부 회사는 자신의 코드를 "역 엔지니어링"할 수 없음을 서비스 용어로 지정합니다. 디버 딩은 확실히 (코드를 사용하는지에 따라) 그 우산에 속할 수 있습니다. 당신이하는 일을 이해하여 계약을 끊지 않으십니까?