2017-08-07 42 views
2

我有一個節點腳本來檢查一些條件。我們稱它爲condition.js。我有另一個腳本來運行我的程序,我們稱之爲runner.jsrunner.js被腳本中的我的package.json文件中的命令以及condition.js引用了它們自己的命令。我希望condition.jsrunner.js之前運行。如果運行時某個條件爲真(它檢查某個字符串)condition.js,我希望第二個腳本在它後面運行。如果不是這樣,我不希望第二個腳本運行。我如何在package.json中做到這一點?package.json腳本條件

+0

編寫第三個腳本,將** it **放入'package.json'中,並相應地運行其他兩個腳本。 – ceejayoz

+0

這是有道理的,但我不能更明確地做到這一點,以顯示兩個腳本之間的關係? – munchschair

+2

不,你不能。這是一個JSON文件 - 它不打算在邏輯前端做一堆繁重的工作。讓你的單個腳本來顯示。 – ceejayoz

回答

2

condition.js你需要exit()節點進程與非零退出代碼。然後在您的package.json文件,您可以檢查是否根據退出代碼(零與否)執行第二腳本:

在你condition.js文件:

if (true) { // use your actual condition 
    process.exit(128); 
} 

然後,在你package.json

{ 
    "scripts": { 
    "special": "node condition.js && node runner.js" 
    } 
} 

現在,您可以從命令行運行npm run specialrunner.js文件僅在condition.js以零代碼退出時運行(如果節點執行時爲缺省值正常結束)。