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.
Kelebihan utama ZX Google:
$
, cd()
, dan akses ke perpustakaan popular (mis., question()
, chalk
, minimist
fetch
Menggalakkan Amalan Terbaik: Menggunakan Modul ECMAScript dan Pengurusan Ketergantungan Tempatan. fs-extra
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.
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
import { $ } from "zx"; await $`ls`;
(untuk output berwarna) dan ls
(untuk parsing argumen baris perintah). cd()
question()
chalk
hello world with zx: minimist
Buat projek:
mkdir zx-project && cd zx-project && npm init -y
Buat npm install --save-dev zx
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);
chmod u x hello.mjs
TypeScript memerlukan tsconfig.json
(mis., "compilerOptions": {"target": "es2017", "module": "commonjs"}
) dan pembungkus await
dalam IIFE:
import { $ } from "zx"; await $`ls`;
Membina Projek Bootstrapper:
mari buat alat (bootstrap-tool.mjs
import { $, argv, cd, chalk, fs, question } from "zx"; import path from "path"; import which from "which";
function exitWithError(msg) { console.error(chalk.red(msg)); process.exit(1); }
git
): node
npx
async function checkRequiredProgramsExist(programs) { ... }
mengendalikan --directory
cd()
Semak Tetapan GIT Global (user.name
user.email
Inisialisasi git: await $
;
menghasilkan package.json
atau npm init -y
), dan kemas kini commonjs
. module
package.json
prompt untuk dan pasang pakej NPM (dengan pengesahan). .gitignore
. npx gitignore
npx mrm
menghasilkan readme.md asas. 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!