Mocha ES6 相关导入

Mocha ES6 Relative Import

我正在尝试使用 Mocha 和 Enzyme 测试我的一个 React 组件。在我的测试文件中,我有一个像这样的导入语句:

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

在那个组件中,我需要一个来自上面目录的助手:

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

我的问题是,COLORS 似乎未定义。我已经用下面目录中的其他文件尝试过它,但它不起作用。这似乎与 import {...} from ... 语法有关。

知道我做错了什么吗?

主题导出:

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

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

export default {
    COLORS,
    BUTTON,
};

如果您使用的是 Babel 6,那么您的 export default 实际上会导出一个对象,其键 default 设置为您的两个对象。

export default { COLORS, BUTTONS };

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

这是进行导出的正确方法,而 Babel 5.x 正在这样做 "wrong" 而不是根据规范。

为了能够将您的对象与 export default 一起使用,您需要使用完整的 ES6 方式并执行

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

这里有 A good read here 详细说明。