
Ini adalah alat yang dibangun untuk membongkar bundel JavaScript yang ditentukan oleh Webpack dan Browserify.
Ini adalah proyek penelitian yang tidak lagi dipertahankan . Saya membangun untuk membantu saya memahami bagaimana bundel JavaScript dituntun. Ini bekerja di lingkungan label hampir sepanjang waktu, tetapi seringkali gagal pada bundel JavaScript dunia nyata. Sudah lama sejak saya mengerjakan proyek ini, jadi jika Anda mengalami masalah, saya mungkin tidak dapat membantu Anda sebanyak itu.
Alasan bervariasi, tetapi alat ini awalnya dikembangkan untuk membantu saya dengan proyek rekayasa terbalik. Tak perlu dikatakan, menyaring bundel yang lebih kecil untuk mencoba dan mencari tahu cara kerja layanan tidak menyenangkan dan jauh lebih mudah ketika bundel itu dipecah menjadi file dan file -file tersebut memiliki nama semantik.
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": {}
}
(Untuk merusak bundel webpack sederhana, ganti browserify konfigurasi di atas dengan webpack )
Konfigurasi dapat memiliki sejumlah bendera - mereka didokumentasikan dalam Docs.md.
Tidak. Ada sekelompok metadata yang hilang saat mengikat:
package.json kustom.json apa pun untuk setiap node_module dan paket root.1.js ) kecuali ditimpa secara manual.Tidak resmi. Namun, jika bundel membagikan tata letak modul tipe yang sama seperti browserify atau webpack dimungkinkan untuk mengatur opsi konfigurasi Moduleast untuk menunjuk ke lokasi modul.
npm install - itu seharusnya../src/index.js (begitulah cara Anda menjalankannya!)test_bundles/ . Sebuah skrip, test_bundles/run_test.sh dapat menjalankan debundler terhadap bundel yang diberikan dan mencoba untuk meremehkannya menjadi dist/ . (CI akan, sebagai bagian dari menjalankan tes, debundle semua bundel di folder itu.)npm testBeberapa perusahaan menentukan dalam persyaratan layanan mereka bahwa kode mereka tidak dapat "direkayasa terbalik". Debundling dapat (tergantung pada bagaimana Anda menggunakan kode) termasuk dalam payung itu. Pahami apa yang Anda lakukan sehingga Anda tidak melanggar perjanjian apa pun?