
هذه أداة تم إنشاؤها لتفريغ حزم JavaScript التي تحظى بوجود WebPack و Browserify.
كان هذا مشروعًا بحثيًا لم يعد يتم الحفاظ عليه . لقد بنيت لمساعدتي في فهم كيفية تبختر حزم 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": {}
}
(لفضح حزمة WebPack بسيطة ، استبدل browserify التكوين أعلاه مع webpack )
يمكن أن يحتوي التكوين على عدد من الأعلام - تم توثيقها في المستندات.
لا. هناك مجموعة من البيانات الوصفية التي فقدت عند التجميع:
package.json مخصصة. json لكل node_module وحزمة الجذر.1.js ) ما لم يتم تجاوزها يدويًا.ليس رسميا. ومع ذلك ، إذا تشارك الحزمة نفس تصميم وحدة النوع مثل Browserify أو WebPack ، فقد يكون من الممكن تعيين خيار تكوين الوحدات النمطية للإشارة إلى موقع الوحدات النمطية.
npm install - يجب أن يكون ذلك../src/index.js (هكذا تديرها!)test_bundles/ . يمكن لـ Script ، test_bundles/run_test.sh تشغيل Doonder مقابل حزمة معينة ومحاولة فضحها في dist/ . (سيقوم CI ، كجزء من اختبارات الجري ، بفضح جميع الحزم في هذا المجلد.)npm testتحدد بعض الشركات من شروط الخدمة الخاصة بها أن رمزها لا يمكن "هندسة عكسية". يمكن للفضول بالتأكيد (اعتمادًا على كيفية استخدامك للرمز) أن يندرج تحت هذه المظلة. هل تفهم ما تفعله حتى لا تحطم أي اتفاقيات؟