'Yarn link in react app results in "Invalid hook" error

I am developing a component shared lib for my app, when I do yarn start, I got this error

Error: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app
See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem

Here's package.json for my lib:

"devDependencies": {
    ...
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    ...
  },
  "peerDependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  }

and here's my package.json in my app:

"dependencies": {
    ...
    "react": "^17.0.2",
    "react-cookie": "^4.0.3",
    ...
  }

I am using rollup for bundle:

import babel from "@rollup/plugin-babel";
import resolve from "@rollup/plugin-node-resolve";
import typescript from "@rollup/plugin-typescript";
import commonjs from "@rollup/plugin-commonjs";
import postcss from "rollup-plugin-postcss";

export default [
  {
    input: "./src/index.ts",
    output: [
      {
        file: "dist/index.js",
        format: "cjs",
      },
    ],
    plugins: [
      resolve({ skip: ["react", "react-dom"] }),
      babel({
        exclude: "node_modules/**",
        presets: ["@babel/preset-react"],
        babelHelpers: "bundled",
      }),
      commonjs({ include: ["./index.ts", "node_modules/**"] }),
      typescript({ tsconfig: "./tsconfig.json" }),
      postcss(),
    ],
  },
];

How to solve this? I have a feeling yarn link caused 2 copies of React in my app.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source