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(dev-server): enable gzip compression, add devServer.compress config #3723

Merged
merged 6 commits into from
May 22, 2023

Conversation

chenjiahan
Copy link
Member

@chenjiahan chenjiahan commented May 22, 2023

Summary

Enable gzip compression by default, and add devServer.compress config. Keep the behaviour consistent with webpack-dev-server.

We use http-compression rather than compression, because compression does not support http2 and has not been maintained for a long time.

🤖 Generated by Copilot at 27c2188

This pull request adds a new feature to the @modern-js/server package, which is to enable gzip compression for the dev server. The feature is controlled by a new compress option in the dev server config, which is true by default. The pull request also updates the dependencies, the schema, the changeset, and the documentation for the feature.

Details

🤖 Generated by Copilot at 27c2188

  • Add compress property to dev server config schema and documentation (link, link, link)
  • Enable gzip compression for dev server by default using compression middleware (link, link, link, link)
  • Document new feature and bump patch versions in changeset file (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 May 22, 2023

🦋 Changeset detected

Latest commit: 61b5c60

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

This PR includes changesets to release 207 packages
Name Type
@modern-js/builder-shared Patch
@modern-js/builder-doc Patch
@modern-js/server Patch
@modern-js/types Patch
@modern-js/core Patch
@modern-js/plugin-storybook Patch
@modern-js/plugin-swc Patch
@modern-js/builder-rspack-provider Patch
@modern-js/builder-webpack-provider Patch
@modern-js/builder Patch
@modern-js/builder-plugin-esbuild Patch
@modern-js/builder-plugin-node-polyfill Patch
@modern-js/builder-plugin-stylus Patch
@modern-js/builder-plugin-swc-base Patch
@modern-js/builder-plugin-swc Patch
@modern-js/app-tools Patch
@e2e/webpack-builder-image-compress Patch
@e2e/builder-plugin-import Patch
@e2e/builder Patch
@modern-js/main-doc Patch
@modern-js/babel-preset-base Patch
@modern-js/doc-core Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-data-loader 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-testing Patch
@modern-js/bff-core Patch
@modern-js/server-core Patch
@modern-js/create-request 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
@modern-js/prod-server Patch
@modern-js/utils Patch
@modern-js/builder-plugin-image-compress Patch
@modern-js/module-tools Patch
@e2e/webpack-builder-css-modules 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 Patch
integration-clean-dist-path Patch
integration-copy-public-html Patch
composes-basic Patch
composes-external Patch
dev-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
disable-source-map Patch
exclude-less Patch
exclude-sass Patch
import-common-css 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
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
dev-server 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-rspack Patch
@cypress-test/garfish-main Patch
@cypress-test/garfish-table 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-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
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
tmp-dir Patch
worker-test Patch
@modern-js/plugin-module-doc Patch
@modern-js/doc-tools Patch
integration-module-doc Patch
@modern-js/doc-tools-doc Patch
@modern-js/module-tools-docs Patch
simple-doc-template Patch
i18n-doc Patch
doc-plugin Patch
simple-doc-production Patch
@modern-js/babel-preset-app Patch
@modern-js/babel-preset-lib Patch
@modern-js/doc-plugin-auto-sidebar Patch
@modern-js/doc-plugin-medium-zoom Patch
@modern-js/plugin-changeset Patch
@modern-js/plugin-i18n Patch
@modern-js/plugin-lint Patch
@modern-js/plugin-proxy Patch
@modern-js/new-action Patch
@modern-js-app/eslint-config Patch
@modern-js/eslint-config Patch
@modern-js/tsconfig Patch
@modern-js/bff-runtime Patch
@modern-js/server-utils 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/upgrade 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
entry Patch
ssg Patch
ssr Patch
swc-integration Patch
@e2e/webpack-builder-import-antd-v4 Patch
@e2e/webpack-builder-import-antd-v5 Patch
@e2e/webpack-builder-node-polyfill Patch
@modern-js/generator-common Patch
@modern-js/generator-plugin Patch
@modern-js/generator-utils Patch
@modern-js/entry-generator Patch
@modern-js/repo-generator Patch
@modern-js/bff-generator Patch
@modern-js/dependence-generator Patch
@modern-js/doc-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/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

@codecov
Copy link

codecov bot commented May 22, 2023

Codecov Report

Patch coverage has no change and project coverage change: +0.55 🎉

Comparison is base (99693f0) 57.59% compared to head (61b5c60) 58.15%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3723      +/-   ##
==========================================
+ Coverage   57.59%   58.15%   +0.55%     
==========================================
  Files         672      643      -29     
  Lines       17794    17181     -613     
  Branches     3876     3752     -124     
==========================================
- Hits        10249     9991     -258     
+ Misses       6934     6589     -345     
+ Partials      611      601      -10     

see 261 files with indirect coverage changes

☔ 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 1ef03dc into web-infra-dev:main May 22, 2023
@chenjiahan chenjiahan deleted the dev_server_compress_0522 branch May 22, 2023 09:56
@caohuilin caohuilin mentioned this pull request May 25, 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.

2 participants