Maison >interface Web >js tutoriel >Execa ou utilisation de child_process pour exécuter des commandes CLI par programme.
Dans cet article, nous analysons deux façons d'exécuter des commandes CLI par programme trouvées dans Shadcn/ui et CodeMirror.
Vous êtes-vous déjà demandé s'il était possible d'exécuter des commandes CLI par programme ? Nous allons voir comment Shadcn/ui utilise execa et comment CodeMirror utilise child_process pour exécuter la CLI par programme.
CodeMirror utilise une API Node.js appelée child_process.execFileSync. Lire la suite
function run(cmd, args, wd = root, { shell = false } = {}) { return child.execFileSync(cmd, args, {shell, cwd: wd, encoding: "utf8", stdio: ["ignore", "pipe", process.stderr]}) }
Juste pour fournir un peu plus de contexte, cette exécution est appelée dans une fonction appelée install dans le code source de CodeMirror.
Consultez le fichier Lisez-moi de CodeMirror v6 pour comprendre à quoi sert cette installation.
L'une des premières étapes pour configurer l'environnement de développement pour CodeMirror consiste à exécuter la commande ci-dessous, ceci est mentionné dans le fichier Readme.md de CodeMirror.
node bin/cm.js install
l'installation est analysée à l'aide de process.argv
Execa exécute des commandes dans votre script, application ou bibliothèque. Contrairement aux shells, il est optimisé pour une utilisation programmatique. Construit sur le module principal child_process.
La commande add de Shadcn/ui s'avère être execa pour installer les packages
Consultez ces résultats de recherche pour l'utilisation d'Execa dans le référentiel Shadcn/ui
Chez Thinkthroo, nous étudions les grands projets open source et fournissons des guides architecturaux. Nous avons développé des composants réutilisables, construits avec tailwind, que vous pouvez utiliser dans votre projet. Nous proposons des services de développement Next.js, React et Node.
Prenez rendez-vous avec nous pour discuter de votre projet.
https://www.npmjs.com/package/execa
https://nodejs.org/api/child_process.html#child_processexecfilesyncfile-args-options
https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback
https://github.com/codemirror/dev/blob/main/bin/cm.js#L14
https://github.com/codemirror/dev?tab=readme-ov-file#codemirror
https://github.com/search?q=repo:shadcn-ui/ui execa&type=code
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!