Jest - Не удается найти модуль «реакция-горячий-загрузчик» - PullRequest
0 голосов
/ 06 марта 2019

Я написал интеграционный тест с использованием 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 голосов
/ 07 марта 2019

React-Hot-Loader имеет плагин babel, который добавляет require('react-hot-loader') к каждому файлу.Так что - даже если вы не видите его - он может быть там.

Решение - отключить плагин реагировать на горячий загрузчик для шутки (или включить только для веб-сайтов).

Существуют различные способысделать это.Самый простой - добавить его с помощью параметров конфигурации babel-loader в вашем webpack.conf и удалить из .babelrc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...