2016-08-14 4 views
5

Я в настоящее время использую Babel.Обработка ошибок импорта ES6

я сделал следующее, прежде чем с 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 отличается от require. От чтения Are ES6 module imports hoisted?import тали, что означает, что импорт загружается до выполнения кода.

Что я делал раньше, так это то, что если какой-либо запрос не выполнен, был создан журнал, который предупреждал меня по электронной почте (отправка журналов на logstash и т. Д.). Поэтому мой вопрос сводится к следующему.

Как обрабатывать ошибки импорта в режиме хорошей практики в nodejs? Существует ли такая вещь?

+0

Вы использовали Babel? – Tugrul

+0

@Tugrul Ах, да, я должен был упомянуть об этом. –

+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.

Таким образом, вы не можете выполнить проверку кода.

Но, хорошая новость заключается в том, что, поскольку он является статичным, его можно анализировать, такие инструменты, как ошибки веб-пакета при создании времени сборки.

Смежные вопросы