ant-design: Missing peerDependencies breaks under Yarn 2 (Berry)

  • I have searched the issues of this repository and believe that this is not a duplicate.

Reproduction link

http://www.example.com/not-applicable

Steps to reproduce

yarn set version berry yarn add antd yarn node -e ‘require(“antd”)’

What is expected?

node terminates without errors

What is actually happening?

Some variant of an error like this one:

Error: rc-upload tried to access react, but it isn’t declared in its dependencies; this makes the require call ambiguous and unsound.

Environment Info
antd 4.7.2
React 16.13.1
System n/a
Browser n/a

Adding the following to your .yarnrc.yml fixes the issue:

packageExtensions:
  "rc-animate@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-cascader@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-checkbox@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-collapse@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-dialog@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-drawer@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-dropdown@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-field-form@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-image@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-input-number@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-mentions@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-menu@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-motion@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-notification@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-pagination@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-picker@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-progress@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-rate@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-resize-observer@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-select@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-slider@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-steps@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-switch@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-table@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-tabs@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-textarea@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-tooltip@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-tree@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-tree-select@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-trigger@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-upload@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1
  "rc-util@*":
    peerDependencies:
      "react": 16.13.1
      "react-dom": 16.13.1

Substitute your version of react or react-dom.

Since each of these dependencies is a separate component, it’s a bit of a pain to fix, deploy new versions, etc. If you’re willing to accept a series of PRs, I’d be happy to write a little script to update all the package.json files and submit PRs. Or if you have alternative suggestions, please let me know.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (7 by maintainers)

Commits related to this issue

Most upvoted comments

It seems that the dependency @ant-design/react-slick doesn’t declare peer dependencies contrary to the original repository, react-slick

rc-field-from rc-tooltip rc-trigger

Wait for the patch to be released.

Thanks. I will do something for that.

By “missing releases” I mean that changes fixing this issue were merged but not tagged/released to npm: