node執(zhí)行cmd或shell命令使用介紹
引言
在實(shí)現(xiàn)前端工程化的過程中,經(jīng)常需要在一個(gè)js腳本中去執(zhí)行其他node
/npm
或者其他shell
命令。本篇就介紹兩種node
調(diào)用shell
的方法。
一、node原生模塊:child_process
node原生API介紹:child_process.exec()
: 衍生 shell 并在該 shell 中運(yùn)行命令,完成后將 stdout 和 stderr 傳給回調(diào)函數(shù)。
child_process.execFile()
: 與 child_process.exec() 類似,不同之處在于,默認(rèn)情況下,它直接衍生命令,而不先衍生 shell。
child_process.fork()
: 衍生新的 Node.js 進(jìn)程并使用建立的 IPC 通信通道(其允許在父子進(jìn)程之間發(fā)送消息)調(diào)用指定的模塊。
child_process.execSync()
: child_process.exec() 的同步版本,其將阻塞 Node.js 事件循環(huán)。
child_process.execFileSync()
: child_process.execFile() 的同步版本,其將阻塞 Node.js 事件循環(huán)。
使用
const process = require("child_process"); // 執(zhí)行 npm run build 命令 ;(function() { process.exec('npm run build', (error, stdout, stderr) => { if (!error) { // 成功 } else { // 失敗 } }); })();
二、npm包:shelljs
- 安裝
npm i -D shelljs
- 使用
const shell = require('shelljs'); // 同步 // 執(zhí)行 git status 命令 const { code } = shell.exec('git status'); /* * 返回一個(gè)對(duì)象 * 可以根據(jù) code 值來判斷當(dāng)前命令是否執(zhí)行成功 * code === 0 代表成功 * */ // 異步回調(diào) // 執(zhí)行 git add . 命令 shell.exec('git add .', function(code, stdout, stderr) { console.log('Exit code:', code); console.log('Program output:', stdout); console.log('Program stderr:', stderr); if (code===0) { console.log('成功') // do something } });
參考文檔:
http://nodejs.cn/api/child_process.html
https://www.npmjs.com/package/shelljs
以上就是node執(zhí)行cmd或shell命令使用介紹的詳細(xì)內(nèi)容,更多關(guān)于node執(zhí)行cmd shell命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
NodeJs超長(zhǎng)字符串問題處理的詳細(xì)分析
這篇文章主要給大家介紹了關(guān)于NodeJs超長(zhǎng)字符串問題處理的詳細(xì)分析,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-02-02node-sass@4.14.1報(bào)錯(cuò)的最終解決方案分享
最近在安裝node-sass@4.14.1的時(shí)候遇到了些問題,所以下面這篇文章主要給大家介紹了關(guān)于node-sass@4.14.1報(bào)錯(cuò)的最終解決方案,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09socket.io與pm2(cluster)集群搭配的解決方案
這篇文章主要給大家介紹了關(guān)于socket.io與pm2(cluster)集群搭配的解決方案,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來看看吧。2017-06-06推薦 21 款優(yōu)秀的高性能 Node.js 開發(fā)框架
Node.js是JavaScript中最為流行的框架之一,易于創(chuàng)建可擴(kuò)展的Web應(yīng)用。Node.js包含不同類型框架,包括MVC, full-stack,REST API以及Generators。借助這些框架使Node.js更加易于使用,它還支持眾多特性功能,只需幾個(gè)步驟就可快速搭建強(qiáng)大的Web應(yīng)用。本文為大家推薦21款2014-08-08Nodejs進(jìn)階:如何將圖片轉(zhuǎn)成datauri嵌入到網(wǎng)頁中去實(shí)例
這篇文章主要介紹了Nodejs進(jìn)階:如何將圖片轉(zhuǎn)成datauri嵌入到網(wǎng)頁中去,有興趣的可以了解一下。2016-11-11