@colorkid

Не видит подключенный модуль из node_modules. Почему?

Всем привет.
1 - Установил npm модуль XXX
2 - Подключаю его import XXX from ''XXX';

а когда пытаюсь вызвать инициализацию new XXX(), пишет "__WEBPACK_IMPORTED_MODULE_4___default.a is not a constructor",
вывожу в консоль что там у меня в принципе в XXX, а там пустой объект {}

В доках про про такой случай не слова. В чем может быть проблема?
  • Вопрос задан
  • 554 просмотра
Решения вопроса 1
e-vyushin
@e-vyushin
Frontend engineer
Модули могут не иметь экспорта по-умолчанию. Например, представим, что у нас есть такой модуль:

// Some module
const a = 1;
const b = 2;

export {
  a,
  b
}

Такой модуль не имеет экспорта по-умолчанию, соответственно если попытаться его импортировать следующим образом:

import module from 'module';

то будет ошибка.

Чтобы получить экспорт модуля, не имеющего экспорта по-умолчанию, нужно использовать следующую конструкцию:

import * as module from 'module';
console.log(module); // {a: 1, b: 2}

в ответ придёт объект, содержащий в себе все экспорты модуля.

Получать сразу всё не всегда бывает целесообразно. Чаще требуется получить из модуля что-то конкретное. Сделать это можно следующим образом:

import { a } from 'module';
console.log(a); // 1

также можно импортировать несколько значений, например:

import { a, b } from 'module';
console.log(a); // 1
console.log(b); // 2

Конкретно в Вашем случае, нужно убедиться, что модуль который Вы пытаетесь импортировать имеет экспорт по-умолчанию. Т. е. нужно посмотреть исходный код модуля, или почитать документацию по нему.

Больше информации о модулях можно получить по ссылке, рекомендую почитать:
https://learn.javascript.ru/modules
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы