Компания Google представила новый пакет-надстройку для child_process. С его помощью разработчики смогут создавать новые скрипты, используя для этого более привычный JavaScript вместо «традиционного» Bash.
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.
Если же вы предпочитаете .js-расширение, то скрипт стоит обернуть во что-то наподобие void async function () {...}().
Также нужно добавить в начало скрипта следующий шебанг: #!/usr/bin/env zx
https://tproger.ru/events/olimpiada-proggy-buggy-towel-contest-2021/?utm_source=in_text
Первый:
chmod +x ./script.mjs
./script.mjs
Второй:
zx ./script.mjs
При использовании zx через bin или шебанг, все $, cd, fetch и прочие можно использовать без импорта.
Примеры команд и более подробную информацию можно найти в репозитории проекта на GitHub, перейдя по ссылке.
Источник статьи: https://tproger.ru/news/google-vypu...-skripty-na-bolee-udobnye-javascript-analogi/
Пример скрипта
#!/usr/bin/env zxawait $`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
Как запустить скрипт?
Запуск скрипта происходит одним из двух способов.https://tproger.ru/events/olimpiada-proggy-buggy-towel-contest-2021/?utm_source=in_text
Первый:
chmod +x ./script.mjs
./script.mjs
Второй:
zx ./script.mjs
При использовании zx через bin или шебанг, все $, cd, fetch и прочие можно использовать без импорта.
Примеры команд и более подробную информацию можно найти в репозитории проекта на GitHub, перейдя по ссылке.
Источник статьи: https://tproger.ru/news/google-vypu...-skripty-na-bolee-udobnye-javascript-analogi/