对不起,我没有在其他地方发布此帖子。
这是我的汇总配置
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项目中,但是将其添加到codeandbox项目中,则我的库会很好
https://codesandbox.io/s/6lqzp7q28w
这给我一个错误
不变违反 挂钩只能在功能组件的主体内部调用。
我似乎无法弄清楚这是Codesandbox问题(我对此表示怀疑)还是汇总配置问题。
答案 0 :(得分:1)
问题在于,熔炉的“反应”和“反应区域”指定为dependencies
,但应将其指定为peerDependencies
。这具有将React拖入两次但效果不佳的效果。如果我从沙盒中完全删除react依赖项,它就可以工作了,因为那时React仅被引入了一次(通过熔炉)。显然,这不是适当的解决方案,但这是一种验证错误原因的快速方法。