开玩笑-找不到模块'react-hot-loader'

时间:2019-03-05 23:30:06

标签: jestjs react-hot-loader

我已经使用Jest编写了集成测试:

import 'jest-styled-components';
import React from 'react';
import { remAuto } from 'tidee-life-theme';
test('blah', () => {});

正在得到这个奇怪的输出:

 Cannot find module 'react-hot-loader' from 'core.js'

       7 | const core = {
       8 |     'background-color': '#fff',
    >  9 |     'color': fontColor,
         |                                                      ^
      10 |     'font-family': fontFamily,
      11 |     'font-family-bold': fontFamilyBold,
      12 |     'font-size': fontSize,

      at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:221:17)
      at ../tidee-life-theme/src/core.js:9:91
      at Object.<anonymous> (../tidee-life-theme/src/core.js:11:3)

当我查看core.js时,没有引用react-hot-loader

export const fontColor = "#666";
export const fontFamily = `'open_sansregular', helvetica, arial`;
export const fontFamilyBold = `'open_sansbold', helvetica, arial`;
export const fontSize = 13;
export const fontLineHeight = 17 /13;

const core = {
    'background-color': '#fff',
    'color': fontColor,
    'font-family': fontFamily,
    'font-family-bold': fontFamilyBold,
    'font-size': fontSize,
    'line-height': fontLineHeight,
};

export default core;

我使用的是lerna,tidee-life-theme位于与测试所用的软件包相邻的软件包中。 那么,这到底是怎么回事?

1 个答案:

答案 0 :(得分:0)

React-Hot-Loader有一个babel插件,它将为每个文件添加require('react-hot-loader')。所以-即使您看不到它,它也可能在那里。

解决方案-暂时不要启用react-hot-loader插件(或仅对Web启用)。

有不同的方法来做到这一点。最简单的一种-通过webpack.conf中的babel-loader配置选项添加它,然后从.babelrc中删除。