海外產(chǎn)品網(wǎng)站建設(shè)上海網(wǎng)絡(luò)推廣聯(lián)盟
process
是Nodejs操作當(dāng)前進(jìn)程和控制當(dāng)前進(jìn)程的API,并且是掛載到globalThis下面的全局API
API 介紹
1. process.arch
返回操作系統(tǒng) CPU 架構(gòu) 跟我們之前講的os.arch 一樣
'arm'
、'arm64'
、'ia32'
、'mips'
、'mipsel'
、'ppc'
、'ppc64'
、's390'
、's390x'
、以及?'x64'
2. process.cwd()
返回當(dāng)前的工作目錄 例如在 F:\project\node> 執(zhí)行的腳本就返回這個(gè)目錄 也可以和path拼接代替__dirname使用
3. process.argv
獲取執(zhí)行進(jìn)程后面的參數(shù) 返回是一個(gè)數(shù)組 后面我們講到命令行交互工具的時(shí)候會很有用,各種cli腳手架也是使用這種方式接受配置參數(shù)例如webpack
4. process.memoryUsage
用于獲取當(dāng)前進(jìn)程的內(nèi)存使用情況。該方法返回一個(gè)對象,其中包含了各種內(nèi)存使用指標(biāo),如 rss(Resident Set Size,常駐集大小)、heapTotal(堆區(qū)總大小)、heapUsed(已用堆大小)和 external(外部內(nèi)存使用量)等
{rss: 30932992, // 常駐集大小 這是進(jìn)程當(dāng)前占用的物理內(nèi)存量,不包括共享內(nèi)存和頁面緩存。它反映了進(jìn)程實(shí)際占用的物理內(nèi)存大小heapTotal: 6438912, //堆區(qū)總大小 這是 V8 引擎為 JavaScript 對象分配的內(nèi)存量。它包括了已用和未用的堆內(nèi)存heapUsed: 5678624, //已用堆大小external: 423221, //外部內(nèi)存使用量 這部分內(nèi)存不是由 Node.js 進(jìn)程直接分配的,而是由其他 C/C++ 對象或系統(tǒng)分配的arrayBuffers: 17606 //是用于處理二進(jìn)制數(shù)據(jù)的對象類型,它使用了 JavaScript 中的 ArrayBuffer 接口。這個(gè)屬性顯示了當(dāng)前進(jìn)程中 ArrayBuffers 的數(shù)量}
5. process.exit()
調(diào)用?process.exit()
?將強(qiáng)制進(jìn)程盡快退出,即使仍有未完全完成的異步操作掛起
下面例子5不會被打印出來 因?yàn)樵?秒鐘的時(shí)候就被退出了。
6. process.kill
與exit類似,kill用來殺死一個(gè)進(jìn)程,接受一個(gè)參數(shù)進(jìn)程id可以通過process.pid 獲取
process.kill(process.pid)
7. process.env
用于讀取操作系統(tǒng)所有的環(huán)境變量,也可以修改和查詢環(huán)境變量。
修改 注意修改并不會真正影響操作系統(tǒng)的變量,而是只在當(dāng)前線程生效,線程結(jié)束便釋放。
環(huán)境變量場景
區(qū)分開發(fā)環(huán)境 和 生產(chǎn)環(huán)境
npm install cross-env
這個(gè)庫是干什么的 cross-env 是 跨平臺設(shè)置和使用環(huán)境變量 不論是在Windows系統(tǒng)還是POSIX系統(tǒng)。同時(shí),它提供了一個(gè)設(shè)置環(huán)境變量的腳本,使得您可以在腳本中以unix方式設(shè)置環(huán)境變量,然后在Windows上也能兼容運(yùn)行
usage
cross-env NODE_ENV=dev
他的原理就是如果是windows 就調(diào)用SET 如果是posix 就調(diào)用export 設(shè)置環(huán)境變量
set NODE_ENV=production #windows
export NODE_ENV=production #posix