Настройка накопительного пакета для библиотеки реагирования
Прошу прощения, но я не смог опубликовать это.
Это моя конфигурация накопительного пакета
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 вытягивается только один раз (с помощью плавильного котла). Очевидно, что это не подходящее решение, но это быстрый способ установить причину ошибки.