Rumah > hujung hadapan web > tutorial js > Cara Menulis Skrip Shell Di Node Dengan Perpustakaan ZX Google '

Cara Menulis Skrip Shell Di Node Dengan Perpustakaan ZX Google '

Lisa Kudrow
Lepaskan: 2025-02-09 09:59:12
asal
969 orang telah melayarinya

Artikel ini meneroka perpustakaan ZX Google, alat yang berkuasa untuk menyelaraskan skrip shell dalam projek Node.js. Kami akan membina utiliti baris arahan untuk bootstrap node.js baru projek, mempamerkan keupayaan ZX.

How to Write Shell Scripts in Node with Google's zx Library

Kelebihan utama ZX Google:

    memudahkan skrip shell dalam node.js menggunakan sintaks JavaScript yang biasa.
  • mengendalikan penciptaan proses kanak -kanak, stdout, dan stderr dengan cekap.
  • menyediakan utiliti yang berguna seperti
  • (untuk pelaksanaan perintah), $, cd(), dan akses ke perpustakaan popular (mis., question(), chalk, , ). minimist fetch Menggalakkan Amalan Terbaik: Menggunakan Modul ECMAScript dan Pengurusan Ketergantungan Tempatan. fs-extra
  • keserasian typescript (dengan pelarasan konfigurasi kecil).
  • Cabaran skrip shell tradisional:

skrip shell tradisional (bash, zsh) boleh menjadi rumit. Menguruskan proses kanak -kanak, melarikan diri hujah, dan mengendalikan Stdout/Stderr menambah kerumitan. Walaupun Bash menawarkan ciri-ciri terbina dalam, sintaksnya kurang intuitif untuk logik kompleks atau pengendalian input pengguna. Node.js, sambil menawarkan modul teras dan fleksibiliti JavaScript, memerlukan pengurusan proses kanak -kanak manual, menjadikannya kurang mudah. ​​

Google's ZX: Penyelesaian:

zx elegan menyelesaikan masalah ini. Ia membungkus pengurusan proses kanak -kanak dan menyebarkan pengendalian I/O.

Prasyarat:

pengetahuan asas javascript dan node.js.

    kebiasaan perintah terminal.
  • node.js & gt; = v14.13.1.
  • Kod Lengkap boleh didapati di GitHub.

bagaimana zx berfungsi:

Fungsi teras ialah . Contohnya:

Ini melaksanakan $ dan menangkap output. ZX menggunakan literasi templat yang ditandakan untuk sintaks yang bersih. Fungsi berguna lain termasuk

untuk menukar direktori dan
import { $ } from "zx";

await $`ls`;
Salin selepas log masuk
Salin selepas log masuk
untuk input pengguna. Ia juga mengintegrasikan perpustakaan popular seperti

(untuk output berwarna) dan ls (untuk parsing argumen baris perintah). cd() question() chalk hello world with zx: minimist

Buat projek:

    Pasang zx:
  1. mkdir zx-project && cd zx-project && npm init -y Buat
  2. :
  3. npm install --save-dev zx
  4. hello.mjs Jadikannya boleh dilaksanakan:
#! /usr/bin/env node
import { $ } from "zx";
$.verbose = false; // Suppress command echoing
const output = (await $`ls`).stdout.trim(); // Trim extra newline
console.log(output);
Salin selepas log masuk
run:
  1. chmod u x hello.mjs
  2. zx dengan typescript:
  3. TypeScript memerlukan tsconfig.json (mis., "compilerOptions": {"target": "es2017", "module": "commonjs"}) dan pembungkus await dalam IIFE:

    import { $ } from "zx";
    
    await $`ls`;
    Salin selepas log masuk
    Salin selepas log masuk

    Membina Projek Bootstrapper:

    mari buat alat () yang mengautomasikan persediaan projek: bootstrap-tool.mjs

      Import Modul yang diperlukan:
    1. import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which";
    2. Fungsi pengendalian ralat:
    3. function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); }
    4. periksa program yang diperlukan (,
    5. , git): node npx async function checkRequiredProgramsExist(programs) { ... } mengendalikan
    6. argumen: periksa sama ada ia wujud dan direktori yang sah, kemudian
    7. ke dalamnya. --directory cd() Semak Tetapan GIT Global (
    8. ,
    9. ). user.name user.email Inisialisasi git:
    10. git init
    11. await $ ; menghasilkan
    12. (menggunakan
    13. ), prompt untuk sistem modul (package.json atau npm init -y), dan kemas kini commonjs. module package.json prompt untuk dan pasang pakej NPM (dengan pengesahan).
    14. menghasilkan fail konfigurasi (
    15. , EditorConfig, Prettier, Eslint) menggunakan
    16. dan .gitignore. npx gitignore npx mrm menghasilkan readme.md asas.
    17. melakukan perubahan kepada git.
    18. Bootstrapper komprehensif ini menyelaraskan inisialisasi projek. Peningkatan selanjutnya boleh termasuk penciptaan direktori automatik, ciri projek sumber terbuka (lesen, perjanjian penyumbang), dan automasi repositori GitHub.

    Soalan Lazim (Soalan Lazim):

    Seksyen FAQ yang disediakan sudah komprehensif dan ditulis dengan baik. Tiada perubahan diperlukan.

    Atas ialah kandungan terperinci Cara Menulis Skrip Shell Di Node Dengan Perpustakaan ZX Google '. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan