首頁 >web前端 >js教程 >如何使用Google ZX庫中的節點編寫shell腳本

如何使用Google ZX庫中的節點編寫shell腳本

Lisa Kudrow
Lisa Kudrow原創
2025-02-09 09:59:12947瀏覽

>本文探討了Google的ZX庫,這是一種在Node.js項目中簡化外殼腳本的強大工具。 我們將構建一個命令行實用程序來引導新的Node.js項目,展示ZX的功能。

How to Write Shell Scripts in Node with Google's zx Library Google ZX的關鍵優勢

  • 使用熟悉的JavaScript語法簡化了node.js中的shell腳本。
  • 處理兒童過程的創建,Stdout和Stderr有效。
  • >
  • >提供有用的實用程序,例如$(用於命令執行),cd()>,question(),並訪問流行的庫(例如,chalkminimistfetchfs-extra
  • )。 )。
  • 促進最佳實踐:使用Ecmasipript模塊和本地依賴性管理。
  • 打字稿的兼容性(帶有次要配置調整)。
>

傳統外殼腳本的挑戰:

>

>傳統的外殼腳本(bash,zsh)可能很麻煩。 管理兒童流程,逃避參數和處理Stdout/stderr增加了複雜性。 雖然Bash提供內置功能,但其語法對於復雜的邏輯或用戶輸入處理的直覺可能較低。 Node.js在提供核心模塊和JavaScript的靈活性時需要手動子過程管理,從而使其變得不那麼直接。

> Google的ZX:一個解決方案:

> ZX優雅地解決了這些問題。 它包裝了兒童過程管理和精簡I/O處理。

>先決條件:

    基本的JavaScript和Node.js知識。
  • >終端命令熟悉。
  • 完整的代碼可在github上找到。

ZX的工作方式:

核心函數是。 例如:

此執行$並捕獲輸出。 ZX利用標記的模板文字進行乾淨的語法。 其他有用的功能包括用於更改目錄的

和用於用戶輸入的
<code class="language-javascript">import { $ } from "zx";

await $`ls`;</code>
。 它還集成了流行的庫,例如

(用於彩色輸出)和ls>(用於命令行參數解析)。 cd()> question()chalk> Hello World with Zx:minimist

>

創建一個項目:

>
    >安裝ZX:
  1. mkdir zx-project && cd zx-project && npm init -y
  2. 創建
  3. npm install --save-dev zx
  4. hello.mjs
  5. 使其可執行:
<code class="language-javascript">#! /usr/bin/env node
import { $ } from "zx";
$.verbose = false; // Suppress command echoing
const output = (await $`ls`).stdout.trim(); // Trim extra newline
console.log(output);</code>
>
    >運行:
  1. chmod u x hello.mjs
  2. 帶有打字稿的
  3. ./hello.mjs zx:

typeScript需要tsconfig.json(例如,"compilerOptions": {"target": "es2017", "module": "commonjs"})和包裝await

<code class="language-javascript">import { $ } from "zx";

await $`ls`;</code>

構建一個項目bootstrapper:> >讓我們創建一個自動化項目設置的工具(

):

bootstrap-tool.mjs導入必要的模塊:

    >
  1. 錯誤處理功能:import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which";
  2. 檢查必需的程序(function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); }
  3. ):gitnode> npxhander async function checkRequiredProgramsExist(programs) { ... }參數:檢查它是否存在並且是有效的目錄,然後進入其中。
  4. >。
  5. 檢查全局git設置(--directorycd())。
  6. >
  7. 初始化git:user.name git inituser.email
  8. >
  9. 生成await $(使用;),Module System(
  10. )的提示,然後更新package.jsonnpm init -y>提示並安裝NPM軟件包(帶有驗證)。 commonjs> module生成配置文件(package.json,EditorConfig,Pretitier,Eslint)使用
  11. 生成基本readme.md。
  12. .gitignore提交對git的更改。 npx gitignore npx mrm
  13. 這個全面的引導程序顯著簡化了項目初始化。 進一步的增強功能可能包括自動目錄創建,開源項目功能(許可證,貢獻者盟約)和GitHub存儲庫自動化。
  14. 常見問題(常見問題解答):
>

提供的常見問題解答部分已經全面且寫得很好。 不需要更改。

以上是如何使用Google ZX庫中的節點編寫shell腳本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn