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(server): add ssr.inlineScript config #3448

Merged
merged 6 commits into from Apr 17, 2023
Merged

feat(server): add ssr.inlineScript config #3448

merged 6 commits into from Apr 17, 2023

Conversation

zllkjc
Copy link
Member

@zllkjc zllkjc commented Apr 14, 2023

Summary

🤖 Generated by Copilot at 15e83c7

This pull request adds a new option inlineScript for SSR mode that allows using inline JSON elements instead of inline scripts for server data injection. It updates the documentation, the runtime, the server, and the utils packages to support the new option. It also adds tests and changelogs for the affected packages and creates a new integration test fixture that uses the new option.

Details

🤖 Generated by Copilot at 15e83c7

  • Add a new option inlineScript for SSR mode to use inline JSON instead of inline scripts for data injection (link)
  • Update the documentation for the ssr configuration in the @modern-js/main-doc package to explain and demonstrate the new option (link, link, link, link)
  • Add the parsedJSONFromElement function to the @modern-js/utils package to parse the JSON data from the HTML element with a given id (link)
  • Add the inlineScript property to the SSR type in the @modern-js/server-core package to indicate whether to use inline scripts or inline JSON for SSR data injection (link)
  • Modify the injectServerData and injectServerDataStream functions in the @modern-js/prod-server package to generate inline JSON elements with the id __MODERN_SERVER_DATA__ instead of inline scripts for the server data injection (link, link)
  • Modify the getSSRDataScript method in the Entry class in the @modern-js/runtime package to check the inlineScript option and generate either inline scripts or inline JSON elements with the corresponding ids for the SSR and router data (link)
  • Assign the parsed JSON data from the elements with the ids __MODERN_SERVER_DATA__, SSR_DATA_JSON_ID, and ROUTER_DATA_JSON_ID to the global variables _SERVER_DATA, _SSR_DATA, and _ROUTER_DATA in the browser environment in the @modern-js/runtime and @modern-js/plugin-router-v5 packages (link, 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 14, 2023

🦋 Changeset detected

Latest commit: 83aa5c7

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

This PR includes changesets to release 214 packages
Name Type
@modern-js/plugin-router-v5 Patch
@modern-js/runtime Patch
@modern-js/prod-server Patch
@modern-js/main-doc Patch
@modern-js/utils Patch
@modern-js/server-core Patch
@modern-js/plugin-garfish Patch
app-docmuent 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
file-based-router Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-storybook Patch
@modern-js/plugin-tailwindcss Patch
@modern-js/plugin-testing Patch
@modern-js/plugin-nest Patch
@integration-test/alias-set Patch
api-service-koa Patch
async-entry-test Patch
bff-express Patch
bff-koa Patch
builder-rspack-with-ssr Patch
builder-rspack 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
tips-to-install-less-plugin 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
always-inline Patch
always-url Patch
assets-in-css Patch
inline-limit Patch
tmp Patch
routes 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
testing-app Patch
worker-test Patch
@modern-js/plugin-ssg Patch
@modern-js/plugin-worker Patch
@modern-js/server Patch
@modern-js/app-tools Patch
@modern-js/babel-preset-app Patch
@modern-js/babel-preset-base Patch
@modern-js/babel-preset-lib Patch
@modern-js/babel-preset-module Patch
@modern-js/core Patch
@modern-js/doc-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-swc Patch
@modern-js/generator-common Patch
@modern-js/generator-plugin Patch
@modern-js/generator-utils Patch
@modern-js/new-action Patch
@modern-js/entry-generator Patch
@modern-js/repo-generator Patch
@modern-js/bff-core Patch
@modern-js/create-request Patch
@modern-js/plugin-egg Patch
@modern-js/plugin-express Patch
@modern-js/plugin-koa Patch
@modern-js/plugin-polyfill Patch
@modern-js/plugin-server Patch
@modern-js/server-utils Patch
@modern-js/builder-rspack-provider Patch
@modern-js/builder-shared Patch
@modern-js/builder-webpack-provider Patch
@modern-js/builder 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/builder-plugin-swc Patch
@modern-js/plugin-module-doc Patch
@modern-js/doc-tools Patch
@modern-js/module-tools Patch
@modern-js/monorepo-tools Patch
@modern-js/create Patch
@modern-js/e2e Patch
@modern-js/node-bundle-require Patch
@modern-js/upgrade Patch
@modern-js/babel-compiler Patch
@scripts/vitest-config Patch
tests Patch
@e2e/builder-plugin-import Patch
@e2e/builder Patch
integration-dev-asset-prefix Patch
integration-register-builder-plugins Patch
integration-copy-public-html Patch
integration-config-async-config-test Patch
integration-basic-local-config Patch
integration-config-function-params Patch
integration-local-config-function Patch
@modern-js-app/eslint-config Patch
@modern-js/module-tools-docs 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/base-generator Patch
@modern-js/packages-generator Patch
@modern-js/server-generator Patch
@modern-js/tailwindcss-generator Patch
@scripts/update-codesmith Patch
webpack-builder-test Patch
@e2e/webpack-builder-image-compress Patch
@e2e/webpack-builder-css-modules Patch
@modern-js/builder-doc Patch
@modern-js/doc-tools-doc 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/remark-container Patch
integration-module-doc Patch
@modern-js/eslint-config Patch
@modern-js/generator-cases Patch
@modern-js/changeset-generator Patch
@modern-js/tsconfig Patch
@modern-js/bff-runtime Patch
@modern-js/plugin Patch
@modern-js/types Patch
@scripts/build Patch
@scripts/check-changeset Patch
@scripts/codemod Patch
@scripts/jest-config Patch
@scripts/lint-package-json Patch
@scripts/prebundle Patch
integration-asset-prefix Patch
integration-builder-plugins Patch
integration-copy-assets Patch
esbuild-integration Patch
integration-load-config Patch
runtime 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

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

@zllkjc zllkjc changed the title feat: add ssr.inlineScript config feat(server): add ssr.inlineScript config Apr 14, 2023
chenjiahan
chenjiahan previously approved these changes Apr 17, 2023
@chenjiahan chenjiahan enabled auto-merge (squash) April 17, 2023 03:03
@codecov
Copy link

codecov bot commented Apr 17, 2023

Codecov Report

Patch coverage: 75.42% and project coverage change: +0.68 🎉

Comparison is base (99693f0) 57.59% compared to head (83aa5c7) 58.28%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3448      +/-   ##
==========================================
+ Coverage   57.59%   58.28%   +0.68%     
==========================================
  Files         672      671       -1     
  Lines       17794    17775      -19     
  Branches     3876     3867       -9     
==========================================
+ Hits        10249    10360     +111     
+ Misses       6934     6810     -124     
+ Partials      611      605       -6     
Impacted Files Coverage Δ
packages/cli/core/src/nodeApi.ts 0.00% <ø> (ø)
packages/cli/doc-plugin-auto-sidebar/src/index.ts 0.00% <0.00%> (ø)
...s/cli/plugin-changeset/src/commands/releaseNote.ts 36.95% <0.00%> (ø)
packages/cli/plugin-changeset/src/utils/index.ts 100.00% <ø> (ø)
packages/cli/core/src/createCli.ts 72.00% <72.00%> (ø)
packages/cli/plugin-data-loader/src/cli/loader.ts 81.81% <83.33%> (ø)
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%> (ø)
... and 5 more

... and 90 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 previously approved these changes Apr 17, 2023
chenjiahan
chenjiahan previously approved these changes Apr 17, 2023
@zllkjc zllkjc merged commit 60a81d0 into main Apr 17, 2023
7 checks passed
@zllkjc zllkjc deleted the feat/inline-json branch April 17, 2023 10:34
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