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

feat(solutions): separate generator from solutions #5420

Merged
merged 13 commits into from
Feb 28, 2024

Conversation

KyrieLii
Copy link
Member

@KyrieLii KyrieLii commented Feb 21, 2024

Summary

close #5359

1. Background

This PR made some optimizations by separating the 'new' and 'upgrade' commands from solutions (such as app-tools).
There are several benefits to doing this:

  • Reduce the direct installation dependency count of solutions to decrease installation time.
  • Allowing the 'new' and 'upgrade' commands to run independently for easier optimization in the future.

2. Design

2.1 Refactor @modern-js/new-action and @modern-js/upgrade to make them run independently.

Now you can use it by npx:

npx @modern-js/new-action // same as npm run new  (modern new)

npx @modern-js/upgrade // same as npm run upgrade (modern upgrade)

After refactoring, the original invocation method remains unaffected.

2.2 Remove the above two dependencies from solutions and execute the CLI using the npx method.

To maintain version consistency, a new environment variable MODREN_JS_VERSION has been added during execution.

3. Drawback

The first time executing the command will take longer, as the time cost has shifted to the npx execution.
Whenever the version of solutions changes, it can be considered as the first time executing.

Next, We will optimize the execution speed of the cli based on this foundation.

Related Links

Checklist

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

Copy link

changeset-bot bot commented Feb 21, 2024

🦋 Changeset detected

Latest commit: a99aa24

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

This PR includes changesets to release 255 packages
Name Type
@modern-js/upgrade-generator Patch
@modern-js/monorepo-tools Patch
@modern-js/module-tools Patch
@modern-js/new-action Patch
@modern-js/app-tools Patch
@modern-js/utils Patch
@modern-js/upgrade Patch
@modern-js/doc-plugin-auto-sidebar Patch
@modern-js/plugin-tailwindcss Patch
@modern-js/devtools-kit Patch
@modern-js/plugin-devtools Patch
@modern-js/plugin-module-babel Patch
@modern-js/plugin-module-banner Patch
@modern-js/plugin-module-import Patch
@modern-js/plugin-module-node-polyfill Patch
@modern-js/plugin-module-polyfill Patch
@modern-js/plugin-module-vue Patch
integration-module-tools Patch
@modern-js/generator-plugin Patch
tests Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-ssg Patch
@modern-js/plugin-swc Patch
@modern-js/devtools-client 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
@integration-test/alias-set Patch
api-service-koa Patch
app-docmuent Patch
integration-asset-prefix Patch
async-entry-test Patch
tmp Patch
bff-express Patch
bff-koa Patch
integration-builder-plugins Patch
integration-clean-dist-path Patch
integration-compatibility Patch
integration-copy-assets Patch
integration-custom-dist-path Patch
integration-custom-render Patch
integration-custom-template Patch
dev-server Patch
@integration-test/devtools Patch
integration-disable-html Patch
esbuild-transform-and-minify Patch
integration-config-async-config-test Patch
integration-basic-local-config Patch
integration-config-function-params Patch
integration-local-config-function Patch
main-entry-name Patch
nonce Patch
routes Patch
file-based-router Patch
use-loader Patch
select-mul-entry-test Patch
select-one-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
@source-code-build/app-ts-loader Patch
@source-code-build/app Patch
ssg-fixtures-nested-routes Patch
ssg-fixtures-simple Patch
ssg-fixtures-web-server Patch
ssr-base-json-test Patch
ssr-base-test Patch
ssr-base-fallback-test Patch
init Patch
ssr-inline Patch
ssr-preload Patch
ssr-script-loading Patch
ssr-streaming-test Patch
swc-test-decorator-legacy Patch
swc-test-decorator Patch
swc-minify-css Patch
swc-minify-js Patch
transform-fail Patch
integration-tailwindcss-v2 Patch
integration-tailwindcss-v3-js-config Patch
integration-tailwindcss-v3-merge-config Patch
integration-tailwindcss-v3-ts-config Patch
integration-tailwindcss-v3 Patch
twin-macro-v2 Patch
twin-macro-v3 Patch
tmp-dir Patch
@e2e/testing-plugin Patch
transform-import-type-test Patch
write-to-dist Patch
@e2e/garfish-dashboard-router-v6 Patch
@e2e/garfish-dashboard Patch
@e2e/garfish-main-router-v6 Patch
@e2e/garfish-main Patch
@e2e/garfish-table Patch
@modern-js/core 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/uni-builder Patch
@modern-js/plugin-testing Patch
@modern-js/generator-common Patch
@modern-js/generator-utils Patch
@modern-js/sandpack-react Patch
@modern-js/base-generator Patch
@modern-js/bff-generator Patch
@modern-js/changeset-generator Patch
@modern-js/dependence-generator Patch
@modern-js/entry-generator Patch
@modern-js/generator-generator Patch
@modern-js/module-doc-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/packages-generator Patch
@modern-js/repo-generator Patch
@modern-js/router-v5-generator Patch
@modern-js/server-generator Patch
@modern-js/ssg-generator Patch
@modern-js/storybook-generator Patch
@modern-js/tailwindcss-generator Patch
@modern-js/test-generator Patch
@modern-js/generator-plugin-plugin Patch
@modern-js/bff-core 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/create Patch
@modern-js/e2e Patch
@modern-js/node-bundle-require Patch
@modern-js/plugin Patch
@modern-js/runtime-utils Patch
@modern-js/babel-compiler Patch
@modern-js/storybook-builder Patch
@modern-js/storybook Patch
@e2e/builder Patch
@e2e/garfish Patch
@modern-js/main-doc Patch
@modern-js/module-tools-docs Patch
@modern-js/storybook-next-generator Patch
@scripts/update-codesmith Patch
@scripts/update-rsbuild Patch
@scripts/update-rspress Patch
integration-tests-storybook Patch
@modern-js/generator-cases Patch
@modern-js/builder-doc Patch
@modern-js-app/eslint-config Patch
@modern-js/eslint-config Patch
@modern-js/tsconfig Patch
@modern-js/babel-plugin-module-resolver Patch
@modern-js/bff-runtime Patch
@modern-js/types Patch
@scripts/build Patch
@scripts/check-changeset Patch
@scripts/jest-config Patch
@scripts/lint-package-json Patch
@scripts/prebundle Patch
@scripts/vitest-config Patch
esbuild-integration Patch
integration-load-config Patch
alias-js-test Patch
alias-ts-test Patch
asset-limit-test Patch
asset-path-test Patch
asset-publicPath-test Patch
svgr-test Patch
auto-extension-commonjs-test Patch
auto-extension-type-module-test Patch
auto-external-test Patch
banner-footer-test Patch
build-type-test Patch
copy-test Patch
decorator-test Patch
global-vars-js-test Patch
global-vars-ts-test Patch
dts-composite Patch
dts-test Patch
esbuild-options-test Patch
external-test Patch
format-cjs-test Patch
format-esm-test Patch
format-iife-test Patch
format-umd-test Patch
entry-test Patch
jsx-test Patch
metafile-test Patch
minify-test Patch
platform-test Patch
redirect-test Patch
data-url-test Patch
browser-false Patch
resolve-false Patch
ndoe-protocol-test Patch
lib1 Patch
lib2 Patch
lib3 Patch
condition-exports-test Patch
js-extensions-test Patch
main-fields-test Patch
shims-test Patch
module-tools-side-effects-test Patch
source-dir-test Patch
sourcemap-test Patch
splitting-test Patch
css-test Patch
less-test Patch
style-test Patch
postcss-test Patch
sass-test Patch
tailwindcss-test Patch
target-test Patch
transform-import Patch
transform-lodash Patch
tsconfig-test Patch
umdGlobals-test Patch
get-module-id-test Patch
dev-test Patch
build-platform-test Patch
build-preset-error-test Patch
build-preset-function-test Patch
build-preset-test Patch
build-preset-string-test Patch
plugin-babel Patch
module-hooks-test Patch
plugin-node-polyfill Patch
plugin-polyfill Patch
plugin-vue Patch
runtime Patch
entry Patch
@source-code-build/common Patch
@source-code-build/components Patch
@source-code-build/utils Patch
ssg Patch
ssr Patch
swc-integration Patch
tailwindcss-integration-test Patch
@e2e/webpack-builder-import-antd-v4 Patch
@e2e/webpack-builder-import-antd-v5 Patch
@e2e/webpack-builder-import-arco Patch
@e2e/webpack-builder-test-moment Patch
@e2e/builder-remove-prop-types Patch
@e2e/webpack-builder-source-map 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

@KyrieLii
Copy link
Member Author

!canary

@KyrieLii KyrieLii force-pushed the feat-separate-generator-from-solutions branch from 8cd2ef9 to b31a08c Compare February 21, 2024 07:48
@KyrieLii
Copy link
Member Author

!canary

1 similar comment
@KyrieLii
Copy link
Member Author

!canary

@KyrieLii KyrieLii marked this pull request as ready for review February 21, 2024 12:20
@KyrieLii KyrieLii force-pushed the feat-separate-generator-from-solutions branch 2 times, most recently from 496caa8 to fde81da Compare February 26, 2024 07:17
@KyrieLii KyrieLii force-pushed the feat-separate-generator-from-solutions branch from b64b2d8 to a99aa24 Compare February 28, 2024 06:15
@KyrieLii KyrieLii changed the title Feat separate generator from solutions feat(solutions): separate generator from solutions Feb 28, 2024
@KyrieLii KyrieLii merged commit c323a23 into main Feb 28, 2024
10 checks passed
@KyrieLii KyrieLii deleted the feat-separate-generator-from-solutions branch February 28, 2024 08:01
@caohuilin caohuilin mentioned this pull request Feb 28, 2024
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.

[Enhancement]: Remove new-action and upgrade generator from solutions.
2 participants