Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(monorepo): ignore unnessary react peers from antd #3487

Merged
merged 1 commit into from
Apr 19, 2023
Merged

Conversation

JSerFeng
Copy link
Collaborator

@JSerFeng JSerFeng commented Apr 18, 2023

Summary

antd dependency has peer dependencies for react and react-dom, however sometimes we just need antd to be resolved, instead of using it directly, so we don't need to install its peer deps.

Vitest based tests that don't really need antd, using spyOn to mock the require of antd.

Playwright test in e2e don't have mock API, so install react for it.

🤖 Generated by Copilot at 1f915f5

Removed antd from the dependencies of three builder packages and used vitest to mock its presence in the tests. Added react and react-dom to the test cases that import different versions of antd. This is to avoid dependency conflicts and test the compatibility of the packages with various antd versions.

Details

🤖 Generated by Copilot at 1f915f5

  • Remove antd dependency from packages/builder/builder-rspack-provider/package.json, packages/builder/builder-webpack-provider/package.json, and packages/builder/plugin-swc/package.json to avoid conflicts with different versions of antd in the tests (link, link, link)
  • Mock require and require.resolve functions in tests/setup.ts files of the above packages using vi object from vitest to simulate the presence of antd version 4 in the node_modules of the test cases that use these packages, without actually installing it as a dependency (link, link, link)
  • Add react and react-dom dependencies to tests/e2e/builder/cases/import-antd-v4/package.json and tests/e2e/builder/cases/import-antd-v5/package.json because they are peer dependencies of antd version 4 and 5 respectively and they are needed to run the test cases (link, link)

Related Issue

Checklist

  • I have added changeset via pnpm run change.
  • I have updated the documentation.
  • I have added tests to cover my changes.

@changeset-bot
Copy link

changeset-bot bot commented Apr 18, 2023

🦋 Changeset detected

Latest commit: 0f88b7b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 212 packages
Name Type
@modern-js/builder-webpack-provider Patch
@modern-js/builder-rspack-provider Patch
@e2e/webpack-builder-import-antd-v4 Patch
@e2e/webpack-builder-import-antd-v5 Patch
@modern-js/builder-plugin-swc Patch
@modern-js/plugin-storybook Patch
@modern-js/builder-plugin-esbuild Patch
@modern-js/builder-plugin-image-compress Patch
@modern-js/builder-plugin-node-polyfill Patch
@modern-js/builder-plugin-stylus Patch
@modern-js/builder-plugin-swc-base Patch
@modern-js/app-tools Patch
@modern-js/module-tools Patch
@e2e/webpack-builder-css-modules Patch
@e2e/webpack-builder-image-compress Patch
@e2e/builder-plugin-import Patch
@e2e/builder Patch
@modern-js/doc-core Patch
@modern-js/plugin-swc Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-ssg Patch
@modern-js/plugin-tailwindcss Patch
@modern-js/plugin-garfish Patch
@modern-js/plugin-router-v5 Patch
@modern-js/runtime Patch
@modern-js/plugin-express Patch
@modern-js/plugin-koa Patch
@modern-js/plugin-polyfill Patch
@modern-js/plugin-server Patch
@modern-js/plugin-worker Patch
tests Patch
@integration-test/alias-set Patch
api-service-koa Patch
app-docmuent Patch
integration-dev-asset-prefix Patch
async-entry-test Patch
bff-express Patch
bff-koa Patch
integration-register-builder-plugins Patch
builder-rspack-with-ssr Patch
builder-rspack Patch
integration-clean-dist-path Patch
integration-copy-public-html Patch
basic-module Patch
composes-basic Patch
composes-external Patch
dev-module Patch
diff-suffix-module Patch
global-module Patch
prod-module Patch
css Patch
antd-less Patch
bad-nested-npm-import Patch
bad-npm-import Patch
base-import Patch
css-ts-declaration Patch
disable-source-map Patch
exclude-less Patch
exclude-sass Patch
import-common-css Patch
inline-css-url Patch
keep-css-url Patch
less-import Patch
less-inline-js Patch
less-npm-import Patch
multi-css Patch
multi-less Patch
multi-sass Patch
nested-npm-import Patch
npm-import Patch
single-css Patch
single-less Patch
single-sass Patch
integration-tailwindcss-v2 Patch
integration-tailwindcss-v3 Patch
twin-macro-v2 Patch
twin-macro-v3 Patch
css-modules Patch
integration-custom-render Patch
integration-custom-template Patch
legacy-esbuild-minify-js Patch
esbuild-transform-and-minify Patch
@cypress-test/garfish-dashboard-router-v6 Patch
@cypress-test/garfish-dashboard Patch
@cypress-test/garfish-main-router-v6 Patch
@cypress-test/garfish-main Patch
@cypress-test/garfish-table Patch
always-inline Patch
always-url Patch
assets-in-css Patch
inline-limit Patch
integration-config-async-config-test Patch
integration-basic-local-config Patch
integration-config-function-params Patch
integration-local-config-function Patch
tmp Patch
routes Patch
file-based-router Patch
use-loader Patch
select-entry-test Patch
server-config Patch
server-middleware Patch
server-hook-reqeust Patch
server-hook-response Patch
server-hook-router Patch
@integration-test/server-hook-reqeust Patch
server-prod Patch
ssg-fixtures-simple Patch
ssg-fixtures-web-server Patch
ssr-base-json-test Patch
ssr-base-test Patch
init Patch
ssr-streaming-test Patch
swc-minify-css Patch
swc-minify-js Patch
transform-fail Patch
worker-test Patch
@modern-js/plugin-module-doc Patch
@modern-js/doc-tools Patch
integration-module-doc Patch
@modern-js/builder-doc Patch
@modern-js/doc-tools-doc Patch
@modern-js/main-doc Patch
@modern-js/module-tools-docs Patch
simple-doc-template Patch
i18n-doc Patch
@modern-js/babel-preset-app Patch
@modern-js/babel-preset-base Patch
@modern-js/babel-preset-lib Patch
@modern-js/core Patch
@modern-js/doc-plugin-auto-sidebar Patch
@modern-js/plugin-changeset Patch
@modern-js/plugin-data-loader Patch
@modern-js/plugin-i18n Patch
@modern-js/plugin-lint Patch
@modern-js/plugin-proxy Patch
@modern-js/plugin-testing Patch
@modern-js/new-action Patch
@modern-js-app/eslint-config Patch
@modern-js/eslint-config Patch
@modern-js/tsconfig Patch
@modern-js/bff-core Patch
@modern-js/bff-runtime Patch
@modern-js/server-core Patch
@modern-js/create-request Patch
@modern-js/prod-server Patch
@modern-js/server Patch
@modern-js/server-utils Patch
@modern-js/builder-shared Patch
@modern-js/builder Patch
@modern-js/plugin-module-babel Patch
@modern-js/plugin-module-banner Patch
@modern-js/plugin-module-import Patch
@modern-js/plugin-module-main-fields Patch
@modern-js/plugin-module-node-polyfill Patch
@modern-js/plugin-module-polyfill Patch
@modern-js/plugin-module-target Patch
@modern-js/monorepo-tools Patch
@modern-js/create Patch
@modern-js/e2e Patch
@modern-js/node-bundle-require Patch
@modern-js/plugin Patch
@modern-js/remark-container Patch
@modern-js/types Patch
@modern-js/upgrade Patch
@modern-js/utils Patch
@modern-js/babel-compiler Patch
@scripts/build Patch
@scripts/check-changeset Patch
@scripts/codemod Patch
@scripts/jest-config Patch
@scripts/lint-package-json Patch
@scripts/prebundle Patch
@scripts/update-codesmith Patch
@scripts/vitest-config Patch
integration-asset-prefix Patch
integration-builder-plugins Patch
integration-copy-assets Patch
doc-tools Patch
esbuild-integration Patch
integration-load-config Patch
runtime Patch
ssg Patch
ssr Patch
swc-integration Patch
@e2e/webpack-builder-node-polyfill Patch
@modern-js/generator-common Patch
@modern-js/generator-plugin Patch
@modern-js/generator-utils Patch
@modern-js/bff-generator Patch
@modern-js/dependence-generator Patch
@modern-js/doc-generator Patch
@modern-js/entry-generator Patch
@modern-js/generator-generator Patch
@modern-js/module-generator Patch
@modern-js/module-test-generator Patch
@modern-js/monorepo-generator Patch
@modern-js/mwa-generator Patch
@modern-js/router-v5-generator Patch
@modern-js/rspack-generator Patch
@modern-js/ssg-generator Patch
@modern-js/storybook-generator Patch
@modern-js/test-generator Patch
@modern-js/upgrade-generator Patch
@modern-js/generator-plugin-plugin Patch
@modern-js/repo-generator Patch
@modern-js/generator-cases Patch
@modern-js/base-generator Patch
@modern-js/changeset-generator Patch
@modern-js/packages-generator Patch
@modern-js/server-generator Patch
@modern-js/tailwindcss-generator Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

chenjiahan
chenjiahan previously approved these changes Apr 18, 2023
@chenjiahan
Copy link
Member

@JSerFeng CI is failed

@JSerFeng JSerFeng force-pushed the fix/peer branch 4 times, most recently from 0a616e5 to e3eb104 Compare April 19, 2023 07:10
chenjiahan
chenjiahan previously approved these changes Apr 19, 2023
@chenjiahan
Copy link
Member

snapshot failed~

* fix(app-tools): can not disable cleanDistPath

* chore: update test case

* chore: add changeset
@codecov
Copy link

codecov bot commented Apr 19, 2023

Codecov Report

Patch coverage: 76.04% and project coverage change: +0.28 🎉

Comparison is base (99693f0) 57.59% compared to head (0f88b7b) 57.88%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3487      +/-   ##
==========================================
+ Coverage   57.59%   57.88%   +0.28%     
==========================================
  Files         672      653      -19     
  Lines       17794    17175     -619     
  Branches     3876     3745     -131     
==========================================
- Hits        10249     9942     -307     
+ Misses       6934     6634     -300     
+ Partials      611      599      -12     
Impacted Files Coverage Δ
packages/cli/core/src/nodeApi.ts 0.00% <ø> (ø)
packages/cli/core/src/createCli.ts 72.00% <72.00%> (ø)
packages/cli/core/src/config/loadConfig.ts 83.33% <85.71%> (+0.25%) ⬆️
packages/cli/core/src/utils/initAppDir.ts 88.88% <88.88%> (ø)
packages/cli/core/src/index.ts 71.42% <100.00%> (-0.62%) ⬇️
packages/cli/core/src/types/index.ts 100.00% <100.00%> (ø)
packages/cli/core/src/utils/index.ts 100.00% <100.00%> (ø)

... and 119 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report in Codecov by Sentry.
📢 Do you have feedback about the report comment? Let us know in this issue.

@chenjiahan chenjiahan merged commit 4baf588 into main Apr 19, 2023
6 checks passed
@chenjiahan chenjiahan deleted the fix/peer branch April 19, 2023 08:03
This was referenced Apr 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants