Настройка накопительного пакета для библиотеки реагирования

Прошу прощения, но я не смог опубликовать это.

Это моя конфигурация накопительного пакета

import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import babel from 'rollup-plugin-babel';
import { terser } from 'rollup-plugin-terser';
import pkg from './package.json';

export default {
  input: 'src/index.js',
  external: ['react', 'react-dom', 'prop-types'],
  output: [
    { file: pkg.main, format: 'cjs', exports: 'named' },
    { file: pkg.module, format: 'es', exports: 'named' },
  ],
  plugins: [
    resolve(),
    commonjs({
      include: 'node_modules/**',
    }),
    babel({
      exclude: 'node_modules/**',
    }),
    terser(),
  ],
};

Вот весь исходный код моего проекта https://github.com/withvoid/melting-pot

Он опубликован на npmjs https://www.npmjs.com/package/@withvoid/melting-pot

моя проблема в том, что моя библиотека работает отлично, если я добавляю ее в проект https://github.com/facebook/create-react-app, но когда я добавляю ее в проект codesandbox

https://codesandbox.io/s/6lqzp7q28w

Это дает мне ошибку, что

Инвариантные нарушения Хуки могут быть вызваны только внутри тела компонента функции.

Кажется, я не могу понять, является ли это проблемой codeandbox (в которой я сомневаюсь) или проблемой с моей конфигурацией накопительного пакета.

1 ответ

Решение

Проблема в том, что в плавильном котле есть "реагировать" и "реагировать", определенные как dependencies, но они должны быть указаны как peerDependencies, Это приводит к двойному эффекту React с неприятными последствиями. Если я полностью удаляю зависимости реакции из песочницы, это работает, потому что тогда React вытягивается только один раз (с помощью плавильного котла). Очевидно, что это не подходящее решение, но это быстрый способ установить причину ошибки.

Другие вопросы по тегам