Модуль не найден при использовании импорта вместо требования

Я пытаюсь использовать import вместо require для всех модулей в моем проекте, но в некоторых старых модулях npm есть инструкции только для require.

В случае «isomorphic-fetch» ​​я не могу найти правильный способ использования импорта:

работает

require('isomorphic-fetch')

терпит неудачу

import 'isomporphic-fetch'   
import Something from 'isomorphic-fetch'

// error Can't resolve 'isomporphic-fetch' from Project/src/js/

Преобразование в import работает с модулем es6-promise.

работает

require('es6-promise').polyfill()

работает

import Something from 'es6-promise'
Something.polyfill()

person Kokodoko    schedule 25.01.2018    source источник
comment
При чем тут загрузка? Узел --experimental-modules, Webpack и т. д.?   -  person CodingIntrigue    schedule 25.01.2018
comment
Возможный дубликат метода выборки fetch не определен с использованием выборки ES6 в Реагировать   -  person The Reason    schedule 25.01.2018


Ответы (1)


Поскольку import работает с другими модулями, а require('isomorphic-fetch') работает, вероятно, это имя экспорта проблема.

Попробуйте import * as Something from 'isomorphic-fetch'

Если это сработает, то это потому, что isomorphic-fetch не выполняет export deafult, поэтому вам нужно вводить import по имени или использовать нотацию, которую я написал выше. Взгляните на ссылку MDN, которую я разместил сверху.

person javinor    schedule 25.01.2018
comment
Спасибо, это было. Все еще не уверен, зачем мне нужна Something, так как эта переменная никогда не используется. import * from 'isomorphic-fetch' не работает. - person Kokodoko; 25.01.2018
comment
Глядя на репозиторий, только экспорт - это функция fetch. Но в дополнение к его экспорту, он также переопределяет global. Так как он пишет в README вам вообще не нужно import, просто require без назначения. Я согласен с тем, что API-интерфейс полифилла es6-promise более понятен. - person javinor; 25.01.2018
comment
Да, я понимаю, что просто require тоже работает, но я бы предпочел придерживаться одного синтаксиса. Было бы здорово, если бы работало только import 'isomporphic-fetch'. - person Kokodoko; 25.01.2018