
นี่คือเครื่องมือที่สร้างขึ้นเพื่อแกะ JavaScript Bundles Prudiced โดย Webpack และ Browserify
นี่เป็นโครงการวิจัยที่ ไม่ได้รับการดูแลอีกต่อไป ฉันสร้างขึ้นเพื่อช่วยให้ฉันเข้าใจว่าการรวมกลุ่มของ JavaScript นั้นมีการดูแล มันทำงานในสภาพแวดล้อม labratory เกือบตลอดเวลา แต่มักจะล้มเหลวในการรวมกลุ่ม 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": {}
}
(หากต้องการ debundle ชุด webpack ง่าย ๆ ให้แทนที่ browserify ให้การกำหนดค่าข้างต้นด้วย webpack )
การกำหนดค่าสามารถมีจำนวนของธง - มีการบันทึกไว้ในเอกสาร MD
ไม่ได้มีเมตาดาต้าพวงที่หายไปเมื่อรวมกัน:
package.json ที่กำหนดเองใด ๆ การตั้งค่า json สำหรับแต่ละ node_module และแพ็คเกจรูท1.js ) เว้นแต่จะถูกแทนที่ด้วยตนเองไม่เป็นทางการ อย่างไรก็ตามหากชุดรวมแชร์เค้าโครงโมดูลประเภทเดียวกันกับเบราว์เซอร์หรือ webpack อาจเป็นไปได้ที่จะตั้งค่าตัวเลือกการกำหนดค่าโมดูลเพื่อชี้ไปที่ตำแหน่งของโมดูล
npm install - นั่นควรจะเป็น./src/index.js (นั่นคือวิธีที่คุณเรียกใช้!)test_bundles/ สคริปต์ test_bundles/run_test.sh สามารถเรียกใช้ debundler กับชุดที่กำหนดและพยายาม debundle เป็น dist/ (CI จะเป็นส่วนหนึ่งของการทดสอบการรวมกลุ่มทั้งหมดในโฟลเดอร์นั้น)npm testบริษัท บางแห่งระบุในข้อกำหนดในการให้บริการของพวกเขาว่ารหัสของพวกเขาไม่สามารถ "ย้อนกลับทางวิศวกรรม" Debundling สามารถแน่นอน (ขึ้นอยู่กับว่าคุณใช้รหัส) ตกอยู่ภายใต้ร่มนั้น เข้าใจสิ่งที่คุณกำลังทำอยู่คุณไม่ได้ทำข้อตกลงใด ๆ ?