
Esta é uma ferramenta criada para descompactar os pacotes JavaScript Prudeded by Webpack e BrowSerify.
Este foi um projeto de pesquisa que não é mais mantido . Eu construí para me ajudar a entender como os pacotes de JavaScript são sofridos. Funciona em um ambiente laboratório na maioria das vezes, mas muitas vezes falha nos feixes JavaScript do mundo real. Já faz um tempo desde que trabalhei neste projeto, por isso, se você tiver problemas, talvez eu não consiga ajudá -lo tanto.
Os motivos variam, mas essa ferramenta foi originalmente desenvolvida para me ajudar com um projeto de engenharia reversa. Escusado será dizer que vasculhar pacotes minificados para tentar descobrir como um serviço funciona não é divertido e é muito mais fácil quando esse pacote é dividido em arquivos e esses arquivos têm nomes semânticos.
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": {}
}
(Para desviar um pacote simples de webpack, substitua browserify acima da configuração acima com webpack )
Uma configuração pode ter várias bandeiras - elas são documentadas em docs.md.
Não. Lá, um monte de metadados que se perdeu ao agrupar:
package.json personalizadas para cada node_module e o pacote raiz.1.js ), a menos que seja substituído manualmente.Não oficialmente. No entanto, se um pacote compartilhar o mesmo layout do módulo de tipo que o BrowSerify ou Webpack, pode ser possível definir a opção de configuração Moduleast para apontar para a localização dos módulos.
npm install - deve ser isso../src/index.js (é assim que você o executa!)test_bundles/ . Um script, test_bundles/run_test.sh pode executar o debundir contra um determinado pacote e tentar desviar -o em dist/ . (O CI, como parte dos testes de execução, desmembrará todos os pacotes nessa pasta.)npm testAlgumas empresas especificam em seus termos de serviço que seu código não pode ser "projetado reverso". Definitivamente, o debundling pode (dependendo de como você está usando o código) se enquadra nesse guarda -chuva. Entenda o que você está fazendo para não quebrar nenhum acordado?