именованный импорт выдает ошибки, тогда как импорт * из не - PullRequest
0 голосов
/ 09 февраля 2019

Рассмотрим следующую структуру папок для функций в моем приложении реагирования:

feature1
    actions
        actionTypes.js
        crud.js
    component.js
    container.js
    reducer.js
    sagas.js
    sagas.test.js
    services.js
    index.js


feature2
    actions
        actionTypes.js
        crud.js
    component.js
    container.js
    reducer.js
    sagas.js
    sagas.test.js
    services.js
    index.js

В файлах index.js я импортирую компонент, контейнер, редуктор и т. Д. Каждой соответствующей функции и экспортировалто же самое из индексного файла.

ex: feature1/index.js

import myReducer from './reducer';
import * as mySagas from './sagas';
import * as myServices from './services';
import * as myCRUD from './actions/crud';
import Component from './component';
import Container from './container';
import * as actionTypes from './actions/actionTypes';

export {
  myReducer,
  actionTypes,
  myCRUD,
  mySagas,
  myServices,
  Component,
  Container,
};

Теперь в файле sagas.test.js feature2 я могу импортировать сервисы Feature1 следующим образом:

import { myServices } from '../feature1';

Приведенная выше строка вызывает ошибку: TypeError: window.locale_name is not a function при выполнении моих тестов Jest.window.locale_name - это функция, определенная в сторонней библиотеке, которая импортируется в feature1.Но с другой стороны, если я импортирую то же самое следующим образом, ошибка не выдается.

import * as myServices from '../feature1/services';

1 Ответ

0 голосов
/ 09 февраля 2019

Похоже, что импортированная myServices зависит от установленной window.locale_name.Может ли причина импорта * работать в том, что среди экспортированных значений feature1/index.js одно из них, которое экспортируется до myServices, задает window.locale_name, которое будет использовать ваш myServices?

Iповерьте, с модулями ES6 выполняется только тот код экспорта, который вы импортируете, чтобы иметь возможность дрожать от дерева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...