zx README

The project's README from github.com/google/zx. As one markdown file: README.md.

Zx logo zx

#!/usr/bin/env zx

await $`cat package.json | grep name`

const branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`

await Promise.all([
  $`sleep 1; echo 1`,
  $`sleep 2; echo 2`,
  $`sleep 3; echo 3`,
])

const name = 'foo bar'
await $`mkdir /tmp/${name}`

Bash is great, but when it comes to writing more complex scripts, many people prefer a more convenient programming language. JavaScript is a perfect choice, but the Node.js standard library requires additional hassle before using. No compromise, take the best of both. The zx package provides useful cross-platform wrappers around child_process, escapes arguments and gives sensible defaults.

Install

npm install zx

All setup options: zx/setup. See also zx@lite.

Usage

Compatibility

See also

License

Apache-2.0

Disclaimer: This is not an officially supported Google product.

zx (google/zx)

Searching Database…

45.8K ·GitHub
Что это?zx — это инструмент от Google, который позволяет писать скрипты для командной оболочки на JavaScript вместо Bash. Он оборачивает child_process из Node.js и добавляет экранирование аргументов и разумные значения по умолчанию.
Это библиотека, которую я импортирую, или самостоятельная CLI-утилита?И то, и другое: zx — это пакет на JS/TS, который можно импортировать в свой код, а ещё он поставляется с CLI, который напрямую запускает .mjs-скрипты и даёт глобальный шаблонный тег $ для команд оболочки.
Как начать пользоваться?Установите пакет zx и пишите скрипты, используя шаблонную строку с тегом $ для запуска команд оболочки; все варианты настройки описаны в zx/setup, а документация по использованию находится на google.github.io/zx.
Какая среда выполнения нужна для запуска скриптов zx?Базовое требование — Node.js >= 12.17.0, но zx также работает на Bun >= 1.0.0, Deno 1.x/2.x или GraalVM Node.js и совместим с Bash или PowerShell.
Поддерживается только один формат модулей?Нет, поддерживаются и CommonJS, и ESM; скрипты можно писать на обычном JavaScript или на TypeScript.
Работает ли это на Windows или только на Unix-подобных системах?Работает на Linux, macOS и Windows: на Windows используется PowerShell, а на Unix-подобных системах — Bash.
Это официальный продукт Google?Он распространяется по лицензии Apache-2.0, но прямо не является официально поддерживаемым продуктом Google, хотя и находится в организации google на GitHub.
Что такое MAML, о котором упоминается в README?MAML — это родственный проект, также упомянутый в README zx: формат конфигурации, похожий на JSON, который добавляет комментарии, многострочные строки, ключи без кавычек и необязательные запятые.
Зачем использовать zx вместо обычных скриптов на Bash?zx позволяет использовать полноценный язык программирования (JavaScript/TypeScript) с настоящими структурами данных и обработкой ошибок для сложных скриптов, при этом удобно запускать команды оболочки без рутинного кода для child_process в Node.js.
Creator
google
Size
4.1 MB
Stars
45.8K
Age
5y
Commits · 90 Days