Компания Google представила новый пакет-надстройку для child_process
. С его помощью разработчики смогут создавать новые скрипты, используя для этого более привычный JavaScript вместо «традиционного» Bash.
Пример скрипта
#!/usr/bin/env zx
await $`cat package.json | grep name`
let 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`,
])
let name = 'foo bar'
await $`mkdir /tmp/${name}`
На примере этого скрипта можно понять как синтаксис, так и саму суть Google ZX.
Как установить?
Выполнить в Терминале команду npm i -g zx
Что дальше?
Сами скрипты можно писать в файле формата .mjs
. В таком случае их можно будет использовать на верхнем уровне.
Если же вы предпочитаете .js-расширение
, то скрипт стоит обернуть во что-то наподобие void async function () {...}()
.
Также нужно добавить в начало скрипта следующий шебанг: #!/usr/bin/env zx
Как запустить скрипт?
Запуск скрипта происходит одним из двух способов.
Первый:
chmod +x ./script.mjs
./script.mjs
Второй:
zx ./script.mjs
При использовании zx
через bin
или шебанг, все $
, cd
, fetch
и прочие можно использовать без импорта.
Примеры команд и более подробную информацию можно найти в репозитории проекта на GitHub, перейдя по ссылке.
Источник: GitHub/Google