
Это инструмент, созданный для распакованности JavaScript Bundles Prudiced Webpack и Browserify.
Это был исследовательский проект, который больше не поддерживается . Я построил, чтобы помочь мне понять, как javaScript Puckles страдают. Большую часть времени он работает в лабораторной среде, но часто терпит неудачу в реальных связях 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 )
Конфигурация может иметь ряд флагов - они задокументированы в docs.md.
Нет. Там куча метаданных, которые теряются при объединении:
node_module package.json .1.js ), если только вручную не переоценку.Официально не. Однако, если комплект использует тот же макет модуля типа, что и Browserify или Webpack, может быть возможно установить параметр конфигурации Moduleast, чтобы указать на местоположение модулей.
npm install - это должно быть../src/index.js (вот как вы его запускаете!)test_bundles/ . Скрипт, test_bundles/run_test.sh может запустить Debundler против данного пакета и попытаться развернуть его в dist/ . (CI будет, как часть запуска тестов, разоблачить все пакеты в этой папке.)npm testНекоторые компании указывают в своих условиях обслуживания, что их код не может быть «обратно спроектирован». Debundling определенно может (в зависимости от того, как вы используете код) подпадать под этот зонтик. Понять, что вы делаете, чтобы вы не нарушаете никаких соглашений?