2016-08-14 16 views
5

मैं वर्तमान में बेबेल का उपयोग कर रहा हूं।ईएस 6 आयात त्रुटि हैंडलिंग

मैंने किया require साथ करने से पहले निम्न:

try { 
    var myModule = require('my-module'); 
} catch (err) { 
    // send error to log file 
} 

लेकिन जब import के साथ ऐसा करने की कोशिश कर रहा:

try { 
    import myModule from 'my-module'; 
} catch (err) { 
    // send error to log file 
} 

मैं त्रुटि मिलती है:

'import' and 'export' may only appear at the top level

अब मैं समझता हूँ importसे अलग है। Are ES6 module imports hoisted?import hoists से पढ़ने का मतलब है कि कोड निष्पादन से पहले आयात लोड हो जाते हैं।

मैंने पहले क्या किया था कि यदि किसी की आवश्यकता होती है तो लॉग बनाया गया था जो मुझे ईमेल के माध्यम से सतर्क करता था (लॉगस्टैश आदि में लॉग भेज रहा था)। तो मेरा सवाल निम्नलिखित के लिए उबाल जाता है।

कोई नोडज में एक अच्छे अभ्यास फैशन में आयात त्रुटियों को कैसे संभालता है? क्या ऐसी किसी वस्तु का अस्तित्व है?

+0

क्या आपने बेबेल का उपयोग किया था? – Tugrul

+0

@ तुगरुल आह हाँ मैं करता हूं, मुझे इसका उल्लेख करना चाहिए। –

+0

मुझे अब कोई प्रश्न नहीं है :) – Tugrul

उत्तर

2

यह बात इसे दूर करती है: https://github.com/ModuleLoader/es-module-loader/issues/280 और आपने जो कहा उससे सहमत हैं।

import only works at the base level. They are static and always load before the module is run.

तो आप कोड चेक नहीं कर सकते हैं।

लेकिन, अच्छी खबर यह है कि यह स्थिर है, इसका विश्लेषण किया जा सकता है, वेबपैक जैसे टूल बिल्ड समय पर त्रुटियों को फेंक देते हैं।

संबंधित मुद्दे