我已经使用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
位于与测试所用的软件包相邻的软件包中。
那么,这到底是怎么回事?
答案 0 :(得分:0)
React-Hot-Loader有一个babel插件,它将为每个文件添加require('react-hot-loader')
。所以-即使您看不到它,它也可能在那里。
解决方案-暂时不要启用react-hot-loader插件(或仅对Web启用)。
有不同的方法来做到这一点。最简单的一种-通过webpack.conf中的babel-loader
配置选项添加它,然后从.babelrc
中删除。