
これは、webpackとbrowserifyによって腐ったJavaScriptバンドルを開梱するために構築されたツールです。
これは、もはや維持されていない研究プロジェクトでした。 JavaScriptのバンドルがどのようにstrutされているかを理解するのに役立つように構築しました。ほとんどの場合、唇の環境で動作しますが、多くの場合、実際の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バンドルを非難するには、上記の構成をwebpackでbrowserifyすること)を交換してください)
構成には多くのフラグを持つことができます - それらはdocs.mdで文書化されています。
いいえ。束ねたときに失われるメタデータの束があります。
node_moduleとルートパッケージのカスタムpackage.json 。1.js )にちなんで名付けられたファイルを作成します。公式ではありません。ただし、Bundleがbrowserifyまたはwebpackと同じタイプモジュールレイアウトを共有している場合、モジュールの位置を指すようにモジュールの構成オプションを設定することができる場合があります。
npm installを実行します - それはそれであるはずです。./src/index.jsです(それがあなたがそれを実行する方法です!)test_bundles/にあります。スクリプト、 test_bundles/run_test.sh特定のバンドルに対してデブンドラーを実行して、それをdist/にdebundすることを試みることができます。 (CIは、実行中のテストの一環として、そのフォルダー内のすべてのバンドルを非難します。)npm test一部の企業は、サービスの利用規約で、コードを「リバースエンジニアリング」できないことを指定しています。デバンドリングは、(コードの使用方法によっては)間違いなくその傘下にあります。あなたが何をしているのか理解しているので、あなたは契約を破らないでしょうか?