Вакару - декомпилятор JavaScript для современного фронта. Это возвращает исходный код из комплексного и транспилированного источника.
Смотрите живую демонстрацию для подробных примеров.
Преобразует транспилированный код обратно в его читаемую форму и восстанавливает пониженные синтаксисы.
Поддерживает следующие трансбира:
Прочитайте документацию для получения дополнительной информации.
Преобразует комплексный JavaScript в разделенные модули
Поддерживает следующие пакеты:
Проверьте инструмент и увидите его в действии на детской площадке.
По умолчанию CLI будет работать в интерактивном режиме и проведет вас через процесс.
Вы также можете передать параметры, чтобы пропустить некоторые шаги в интерактивном режиме.
npx @wakaru/cli
# or
pnpm dlx @wakaru/cli Запустите npx @wakaru/cli --help чтобы увидеть полный список параметров.
| Вариант | По умолчанию | Описание |
|---|---|---|
--output | "out" | Выходной каталог |
--force | false | Справочный каталог перезаписывания |
--concurrency | 1 | Конкретное количество одновременных задач |
--perf | false | Показать показатели производительности |
--perf-output | Справочник по выводу показателей производительности |
--concurrency может использоваться для ускорения процесса. Но, пожалуйста, знайте, что процесс может быть оснащен, если входной файл слишком большой.
Если вы хотите запустить CLI в неинтерактивном режиме, вы можете указать эту функцию, передавая имя функции в качестве первого аргумента.
unpacker и unminify будут запускать только соответствующую функцию.
all будут запускать как unpacker , так и unminify последовательно.
npx @wakaru/cli all <files...> [options]
npx @wakaru/cli unpacker <files...> [options]
npx @wakaru/cli unminify <files...> [options]
Эти параметры доступны только во all режиме.
| Вариант | По умолчанию | Описание |
|---|---|---|
--unpacker-output | "out/unpack" | Переопределить выводный каталог непосредственно |
--unminify-output | "out/unminify" | Переопределить Unminify Output Directory |
При запуске единой функции ( unpacker или unminify ) CLI будет использовать только путь, указанный в опции --output . Это означает, что, в отличие от режима all , где подканализации ( out/unpack и out/unminify ) автоматически создаются в выходном каталоге, в режиме отдельных функций выходные файлы размещаются непосредственно в указанном каталоге --output без каких -либо дополнительных поджигателей.
npm install @wakaru/unpacker @wakaru/unminify
# or
pnpm install @wakaru/unpacker @wakaru/unminify
# or
yarn add @wakaru/unpacker @wakaru/unminify@wakaru/unpacker import { unpack } from '@wakaru/unpacker' ;
const { modules , moduleIdMapping } = await unpack ( sourceCode ) ;
for ( const mod of modules ) {
const filename = moduleIdMapping [ mod . id ] ?? `module- ${ mod . id } .js` ;
fs . writeFileSync ( outputPath , mod . code , 'utf-8' ) ;
}@wakaru/unminify import { runDefaultTransformationRules , runTransformationRules } from '@wakaru/unminify' ;
const file = {
source : '...' , // source code
path : '...' , // path to the file, used for advanced usecases. Can be empty.
}
// This function will apply all rules that are enabled by default.
const { code } = await runDefaultTransformationRules ( file ) ;
// You can also specify the rules to apply. Order matters.
const rules = [
'un-esm' ,
...
]
const { code } = await runTransformationRules ( file , rules ) ;Вы можете проверить все правила по адресу/unminify/src/transformations/index.ts.
Пожалуйста, знайте, что этот проект все еще находится в раннем развитии. API может измениться в будущем.
И размер комплекта этих пакетов огромный. Это может быть уменьшено в будущем. Используйте с осторожностью в браузере (да, как и на детской площадке, она может работать в браузере).
Использование wakaru для атаки целей без предварительного взаимного согласия является незаконным. Конечным пользователем обязан подчиняться всем применимым местным, государственным и федеральным законам. Разработчики не несут никакой ответственности и не несут ответственности за какое -либо злоупотребление или ущерб, причиненные этой программой.
Грань