版本

no-process-exit

禁止使用 process.exit()

此規則在 ESLint v7.0.0 中已棄用。請使用 eslint-plugin-n 中的對應規則。

Node.js 中的 process.exit() 方法用於立即停止 Node.js 程式並結束。這是一個危險的操作,因為它可能在任何時間點的任何方法中發生,可能會在發生錯誤時完全停止 Node.js 應用程式。例如:

if (somethingBadHappened) {
    console.error("Something bad happened!");
    process.exit(1);
}

這段程式碼可能會出現在任何模組中,並且當 somethingBadHappened 為真時,將會停止整個應用程式。這不給應用程式任何響應錯誤的機會。通常最好拋出錯誤,並允許應用程式適當地處理它。

if (somethingBadHappened) {
    throw new Error("Something bad happened!");
}

透過以這種方式拋出錯誤,應用程式的其他部分有機會處理錯誤,而不是完全停止應用程式。如果錯誤一直冒泡到進程而未被處理,那麼進程將會退出並返回一個非零的退出碼,因此最終結果是相同的。

如果您僅使用 process.exit() 來指定退出碼,則可以設定 process.exitCode(在 Node.js 0.11.8 中引入)。

規則詳情

此規則旨在防止在 Node.js JavaScript 中使用 process.exit()。因此,只要在程式碼中發現 process.exit(),就會發出警告。

此規則的錯誤程式碼範例

在線上試驗場中開啟
/*eslint no-process-exit: "error"*/

process.exit(1);
process.exit(0);

此規則的正確程式碼範例

在線上試驗場中開啟
/*eslint no-process-exit: "error"*/

Process.exit();
var exit = process.exit;

何時不該使用它

Node.js 應用程式的某個部分可能負責決定退出時要返回的正確退出碼。在這種情況下,您應該關閉此規則,以允許正確處理退出碼。

版本

此規則在 ESLint v0.4.0 中引入。

資源

變更語言