Рассмотрим следующую структуру папок для функций в моем приложении реагирования:
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';