2014-09-24 53 views
0

我正在研究一些需要shellj的cordova鉤子。現在,如果用戶沒有安裝shelljs,他們得到此錯誤消息處理節點中缺少的模塊錯誤

module.js:340 
    throw err; 
     ^
Error: Cannot find module 'shelljs' 
    at Function.Module._resolveFilename (module.js:338:15) 
    at Function.Module._load (module.js:280:25) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    .... 

所以這個消息很醜陋,我想提供更好的信息給用戶。無論如何阻止這條消息,然後通過console.log允許自定義消息?

回答

1

您可以在一個try-catch包起來:

var shelljs; 
try { 
    shelljs = require('shelljs'); 
} catch (ex) { 
    console.log('ShellJS is required'); 
    process.exit(1); 
} 
+0

真棒,謝謝。任何方式擺脫這一點? '鉤子失敗,出現錯誤代碼1:' – mhartington 2014-09-24 22:34:41

+0

你可以發送完整的輸出到某處(尤其是之前發生的錯誤信息)嗎?這一點並沒有多大的意義。 – mscdex 2014-09-24 22:58:35

+0

那麼輸出就是代碼退出的地方,或者什麼文件導致退出 – mhartington 2014-09-24 23:46:28