2016-01-18 2 views
0

Я пытаюсь проверить один из моих компонентов React, используя Mocha и Enzyme. В моем тестовом файле, у меня есть импорт заявление так:Mocha ES6 Относительный импорт

import MyComponent from '../../../src/components/MyComponent'; 

В этом компоненте, мне требуется помощник из каталога выше:

import {COLORS}  from "../../helpers/THEME"; 

Моя проблема в том, что ЦВЕТА, кажется, не определено , Я пробовал это с другими файлами, которые являются каталогами ниже, и это не работает. Кажется, что-то с импортом {...} из ... синтаксиса.

Любые идеи, что я делаю неправильно здесь?

Экспорт из ТЕМЕ:

const COLORS = { 
    white: "#ffffff", 
    black: "#000000", 
}; 

const BUTTON = { 
    color: 'blue', 
    width: 30 
}; 

export default { 
    COLORS, 
    BUTTON, 
}; 
+0

'../../' это два каталога выше, может ли это быть причиной этого? –

+0

Как вы экспортируете вещи из 'THEME'? – loganfsmyth

+0

Да, путь кажется правильным, потому что webpack правильно его компилирует. Из THEME я создаю объекты const, а затем экспорт по умолчанию { ЦВЕТЫ, КНОПКИ }; , где ЦВЕТЫ и КНОПКИ являются объектами ключевого значения. – HappyCry

ответ

1

Если вы на Бабеля 6, то ваш export default будет фактически экспортировать объект с помощью ключа default набора для ваших обоих объектов.

export default { COLORS, BUTTONS }; 

//> { default: { COLORS: { hex: '#fff' }, BUTTONS: {} } }; 

Это правильный способ делать экспорт, и Babel 5.x делал это «неправильно», а не по спецификации.

Для того, чтобы иметь возможность использовать объект с export default вы бы с полным образом ES6 и сделать

import theme from './THEME'; 
console.log(theme.COLORS); 
//> { hex: '#fff' } 

Там в A good read here, который объясняет это подробно.

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