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

perf: reduce bundle size for chunk imports #9491

Closed
wants to merge 10 commits into from

Conversation

gajus
Copy link
Contributor

@gajus gajus commented Aug 1, 2022

Description

This change introduces __viteFile helper which is a generated function that allows to refer to chunks by an index.

Using this helper allows to generate import dependencies without repeatedly hard-coding the same strings.

On a medium size vite-plugin-ssr project, this reduces entry-entry-client-routing file size from 1.7MB to 0.3MB.

How it changes output

Before:

"/renderer/_default.page.client.tsx": () => __vitePreload(() => import("./entry-renderer/_default.page.client.c8e80509.js"), true ? ["entry-renderer/_default.page.client.c8e80509.js","chunk-package-@segment/analytics-next.fb10ccee.js","chunk-package-@lukeed/uuid.dea90eda.js","chunk-package-dset.aed43927.js","chunk-package-@algolia/events.efd56637.js","chunk-package-spark-md5.7043539d.js","chunk-package-@segment/analytics-core.56686ad5.js","chunk-package-js-cookie.7af8cc18.js","chunk-package-@segment/facade.537706f9.js","chunk-package-obj-case.3bbe5b07.js","chunk-package-new-date.0615965b.js","chunk-package-@segment/isodate.a5457d1f.js","chunk-package-@segment/isodate-traverse.fba36559.js","chunk-package-inherits.1373acbe.js","chunk-package-@segment/tsub.44a839f4.js","chunk-package-tiny-hashes.7adb67a0.js","chunk-package-dlv.6c1e6d0d.js","chunk-package-@stdlib/math-base-special-ldexp.f3739dd7.js","chunk-package-@stdlib/number-float64-base-to-words.69a3b622.js","chunk-package-@stdlib/array-uint32.a7d4a8c0.js","chunk-package-@stdlib/assert-has-uint32array-support.3a90b9c8.js","chunk-package-@stdlib/utils-native-class.b6ac5f06.js","chunk-package-@stdlib/assert-has-tostringtag-support.7de38f99.js","chunk-package-@stdlib/assert-has-symbol-support.6e608581.js","chunk-package-@stdlib/assert-has-own-property.2a25da17.js","chunk-package-@stdlib/assert-is-uint32array.7fb38eae.js","chunk-package-@stdlib/constants-uint32-max.d3c38fca.js","chunk-package-@stdlib/array-float64.a0709ca5.js","chunk-package-@stdlib/assert-has-float64array-support.bc5c6248.js","chunk-package-@stdlib/assert-is-float64array.7365ee46.js","chunk-package-@stdlib/assert-is-little-endian.addb8b0a.js","chunk-package-@stdlib/array-uint8.ad65f98c.js","chunk-package-@stdlib/assert-has-uint8array-support.98d467f1.js","chunk-package-@stdlib/assert-is-uint8array.42423ed2.js","chunk-package-@stdlib/constants-uint8-max.9efd4f5a.js","chunk-package-@stdlib/array-uint16.a9357350.js","chunk-package-@stdlib/assert-has-uint16array-support.51dedf15.js","chunk-package-@stdlib/assert-is-uint16array.eb21f2b4.js","chunk-package-@stdlib/constants-uint16-max.1e240c87.js","chunk-package-@stdlib/number-float64-base-get-high-word.01944d75.js","chunk-package-@stdlib/number-float64-base-from-words.d41a3d2f.js","chunk-package-@stdlib/constants-float64-pinf.bdf82603.js","chunk-package-@stdlib/constants-float64-ninf.9f7ca1b1.js","chunk-package-@stdlib/number-ctor.ec2da30a.js","chunk-package-@stdlib/constants-float64-exponent-bias.ce493dd4.js","chunk-package-@stdlib/constants-float64-max-base2-exponent.324ce314.js","chunk-package-@stdlib/constants-float64-max-base2-exponent-subnormal.103421d6.js","chunk-package-@stdlib/constants-float64-min-base2-exponent-subnormal.68e40ecd.js","chunk-package-@stdlib/math-base-assert-is-nan.5cecf80e.js","chunk-package-@stdlib/math-base-assert-is-infinite.30f8b8e1.js","chunk-package-@stdlib/math-base-special-copysign.e72d638e.js","chunk-package-@stdlib/number-float64-base-normalize.fd04eb7b.js","chunk-package-@stdlib/constants-float64-smallest-normal.2c035c38.js","chunk-package-@stdlib/math-base-special-abs.3866a94e.js","chunk-package-@stdlib/number-float64-base-exponent.2d0b4521.js","chunk-package-@stdlib/constants-float64-high-word-exponent-mask.186c0d77.js","chunk-package-@stripe/stripe-js.8c6afa50.js","chunk-package-react-dom.7b11fc9c.js","chunk-package-react.c1af14ac.js","chunk-package-scheduler.f504f37d.js","chunk-package-react-relay.dd9741a7.js","chunk-package-fbjs.5b9968f1.js","chunk-package-react-markdown.f7393356.js","chunk-package-unist-util-visit.c11c8868.js","chunk-package-unist-util-visit-parents.558c2acb.js","chunk-package-unist-util-is.fc1f8248.js","chunk-package-xtend.5ccf7318.js","chunk-package-unified.04c78e8c.js","chunk-package-bail.0517194d.js","chunk-package-is-buffer.fd267e19.js","chunk-package-extend.ee4daf25.js","chunk-package-is-plain-obj.86a2a402.js","chunk-package-trough.aa18dcc9.js","chunk-package-vfile.39d2b86e.js","chunk-package-vfile-message.289aea87.js","chunk-package-unist-util-stringify-position.2fc7d249.js","chunk-package-remark-parse.f9b93817.js","chunk-package-mdast-util-from-markdown.ad8fcc4b.js","chunk-package-micromark.d4eead61.js","chunk-package-parse-entities.003bdd11.js","chunk-package-mdast-util-to-string.d3a8f5f9.js","chunk-package-prop-types.5e0e9c9b.js","chunk-package-mdast-add-list-metadata.a12ca1ca.js","chunk-package-@contra/slate.08636f14.js","chunk-package-slate.e93c3b84.js","chunk-package-is-plain-object.cceb68c2.js","chunk-package-immer.00062d2a.js","chunk-package-slate-react.9617ddcc.js","chunk-package-direction.289ffac1.js","chunk-package-lodash.3ecbaba0.js","chunk-package-scroll-into-view-if-needed.438df2c9.js","chunk-package-compute-scroll-into-view.5011245c.js","chunk-package-slate-history.3119a714.js","chunk-package-react-is.dda36dce.js","chunk-package-html-to-react.5fd6139d.js","chunk-package-lodash.camelcase.8c2ab25d.js","chunk-package-htmlparser2.2dd211c9.js","chunk-package-domhandler.c50f8f8f.js","chunk-package-domelementtype.176ca205.js","chunk-package-domutils.f4918324.js","chunk-package-dom-serializer.e5a3980a.js","chunk-package-invariant.c8047148.js","chunk-package-relay-runtime.4ef547e3.js","chunk-constants.ae54f8d3.js","chunk-package-fast-safe-stringify.eb2c2e4d.js","chunk-package-@stripe/react-stripe-js.fbaf3795.js","chunk-package-dayjs.c07d180b.js","chunk-package-@contra/ui-kit.2280203b.js","chunk-package-react-helmet-async.30f1f91c.js","chunk-package-react-fast-compare.e4b0239a.js","chunk-package-shallowequal.cadff277.js","chunk-package-styled-components.effe5c08.js","chunk-package-@emotion/stylis.479bf11c.js","chunk-package-@emotion/unitless.d7cd85ab.js","chunk-package-@emotion/is-prop-valid.c4a69d3f.js","chunk-package-@emotion/memoize.8d1457bc.js","chunk-package-hoist-non-react-statics.32461ff5.js","chunk-package-@sentry/browser.c78f6ea8.js","chunk-package-query-string.03a22a95.js","chunk-package-strict-uri-encode.238e0f1c.js","chunk-package-decode-uri-component.cc9d4ba6.js","chunk-package-split-on-first.97d75553.js","chunk-package-filter-obj.23c3e123.js","chunk-package-@react-aria/tooltip.ce234e49.js","chunk-package-@react-aria/utils.c3f3992f.js","chunk-package-@react-aria/ssr.f23fc836.js","chunk-package-clsx.641e5cac.js","chunk-package-@react-aria/interactions.caf22131.js","chunk-package-react-popper.1ea86a03.js","chunk-package-@popperjs/core.c1fd2ecf.js","chunk-package-framer-motion.21c4ad73.js","chunk-package-tslib.0c0fdf67.js","chunk-package-style-value-types.d5f236c1.js","chunk-package-popmotion.36016c92.js","chunk-package-hey-listen.4b326f17.js","chunk-package-framesync.d3ff8deb.js","chunk-package-relay-sentry.b5aadadd.js","chunk-package-serialize-error.2ba7fbe2.js","chunk-package-@microsoft/fetch-event-source.70f49509.js","chunk-package-ua-parser-js.4d9d3109.js","chunk-package-@styled-system/flexbox.01c65432.js","chunk-package-@styled-system/core.aac4241e.js","chunk-package-object-assign.e9879be4.js","chunk-package-@styled-system/layout.85d7b259.js","chunk-package-localforage.c9c55541.js","chunk-package-@roarr/browser-log-writer.6388cd2f.js","chunk-package-globalthis.98bf6622.js","chunk-package-define-properties.9b058ae4.js","chunk-package-object-keys.7c70ae9e.js","chunk-package-boolean.f36fb086.js","chunk-package-liqe.c248a246.js","chunk-package-nearley.98cd0839.js","chunk-package-ts-error.84a2a1ea.js","chunk-package-roarr.5c75af81.js","chunk-package-fast-printf.1116a167.js","chunk-package-semver-compare.3ba4fe73.js","chunk-package-styled-system.c8137055.js","chunk-package-@styled-system/color.2550b40e.js","chunk-package-@styled-system/typography.a137c813.js","chunk-package-@styled-system/grid.4b0cb833.js","chunk-package-@styled-system/border.497999b3.js","chunk-package-@styled-system/background.2d54c9cb.js","chunk-package-@styled-system/position.a9ca4b39.js","chunk-package-@styled-system/space.1563a972.js","chunk-package-@styled-system/shadow.95a3032c.js","chunk-package-@styled-system/variant.348842f5.js","chunk-package-@styled-system/css.133c4c3d.js","chunk-package-@react-aria/overlays.07e5d719.js","chunk-package-@react-aria/i18n.9847e163.js","chunk-package-@internationalized/message.d1124dc4.js","chunk-package-intl-messageformat.708d4cb9.js","chunk-package-@formatjs/icu-messageformat-parser.442e46c0.js","chunk-package-@formatjs/icu-skeleton-parser.45214662.js","chunk-package-@formatjs/fast-memoize.004ea94a.js","chunk-package-@internationalized/date.97e1a77c.js","chunk-package-@internationalized/number.2ac42a2f.js","chunk-package-dom-helpers.68a9dd38.js","chunk-package-@tanem/react-nprogress.09ab0386.js","chunk-Box.05c96ced.js","chunk-MotionDiv.0b195451.js","chunk-useLastLocation.8e10c06b.js","chunk-useOnElementViewed.dc38e8e7.js","chunk-useIsElementVisible.aafffa7f.js","chunk-useRouteParameter.5492060c.js","chunk-Toast.styles.86b004b3.js","chunk-Rocket.f6951551.js","chunk-package-path-to-regexp.9d34f552.js","chunk-package-@brillout/json-s.5e618128.js","chunk-package-@brillout/libassert.21bc03a9.js"] : void 0),
"/renderer/_error.page.client.tsx": () => __vitePreload(() => import("./entry-renderer/_error.page.client.59420f67.js"), true ? ["entry-renderer/_error.page.client.59420f67.js","chunk-package-react-helmet-async.30f1f91c.js","chunk-package-react.c1af14ac.js","chunk-package-@algolia/events.efd56637.js","chunk-package-prop-types.5e0e9c9b.js","chunk-package-react-fast-compare.e4b0239a.js","chunk-package-invariant.c8047148.js","chunk-package-shallowequal.cadff277.js","chunk-package-@contra/slate.08636f14.js","chunk-package-slate.e93c3b84.js","chunk-package-is-plain-object.cceb68c2.js","chunk-package-immer.00062d2a.js","chunk-package-slate-react.9617ddcc.js","chunk-package-direction.289ffac1.js","chunk-package-lodash.3ecbaba0.js","chunk-package-scroll-into-view-if-needed.438df2c9.js","chunk-package-compute-scroll-into-view.5011245c.js","chunk-package-react-dom.7b11fc9c.js","chunk-package-scheduler.f504f37d.js","chunk-package-slate-history.3119a714.js","chunk-NotFound.a559bf2f.js","chunk-package-styled-components.effe5c08.js","chunk-package-react-is.dda36dce.js","chunk-package-@emotion/stylis.479bf11c.js","chunk-package-@emotion/unitless.d7cd85ab.js","chunk-package-@emotion/is-prop-valid.c4a69d3f.js","chunk-package-@emotion/memoize.8d1457bc.js","chunk-package-hoist-non-react-statics.32461ff5.js","chunk-constants.ae54f8d3.js","chunk-package-react-relay.dd9741a7.js","chunk-package-fbjs.5b9968f1.js","chunk-package-react-markdown.f7393356.js","chunk-package-unist-util-visit.c11c8868.js","chunk-package-unist-util-visit-parents.558c2acb.js","chunk-package-unist-util-is.fc1f8248.js","chunk-package-xtend.5ccf7318.js","chunk-package-unified.04c78e8c.js","chunk-package-bail.0517194d.js","chunk-package-is-buffer.fd267e19.js","chunk-package-extend.ee4daf25.js","chunk-package-is-plain-obj.86a2a402.js","chunk-package-trough.aa18dcc9.js","chunk-package-vfile.39d2b86e.js","chunk-package-vfile-message.289aea87.js","chunk-package-unist-util-stringify-position.2fc7d249.js","chunk-package-remark-parse.f9b93817.js","chunk-package-mdast-util-from-markdown.ad8fcc4b.js","chunk-package-micromark.d4eead61.js","chunk-package-parse-entities.003bdd11.js","chunk-package-mdast-util-to-string.d3a8f5f9.js","chunk-package-mdast-add-list-metadata.a12ca1ca.js","chunk-package-html-to-react.5fd6139d.js","chunk-package-lodash.camelcase.8c2ab25d.js","chunk-package-htmlparser2.2dd211c9.js","chunk-package-domhandler.c50f8f8f.js","chunk-package-domelementtype.176ca205.js","chunk-package-domutils.f4918324.js","chunk-package-dom-serializer.e5a3980a.js","chunk-package-relay-runtime.4ef547e3.js","chunk-package-@segment/analytics-next.fb10ccee.js","chunk-package-@lukeed/uuid.dea90eda.js","chunk-package-dset.aed43927.js","chunk-package-spark-md5.7043539d.js","chunk-package-@segment/analytics-core.56686ad5.js","chunk-package-js-cookie.7af8cc18.js","chunk-package-@segment/facade.537706f9.js","chunk-package-obj-case.3bbe5b07.js","chunk-package-new-date.0615965b.js","chunk-package-@segment/isodate.a5457d1f.js","chunk-package-@segment/isodate-traverse.fba36559.js","chunk-package-inherits.1373acbe.js","chunk-package-@segment/tsub.44a839f4.js","chunk-package-tiny-hashes.7adb67a0.js","chunk-package-dlv.6c1e6d0d.js","chunk-package-@stdlib/math-base-special-ldexp.f3739dd7.js","chunk-package-@stdlib/number-float64-base-to-words.69a3b622.js","chunk-package-@stdlib/array-uint32.a7d4a8c0.js","chunk-package-@stdlib/assert-has-uint32array-support.3a90b9c8.js","chunk-package-@stdlib/utils-native-class.b6ac5f06.js","chunk-package-@stdlib/assert-has-tostringtag-support.7de38f99.js","chunk-package-@stdlib/assert-has-symbol-support.6e608581.js","chunk-package-@stdlib/assert-has-own-property.2a25da17.js","chunk-package-@stdlib/assert-is-uint32array.7fb38eae.js","chunk-package-@stdlib/constants-uint32-max.d3c38fca.js","chunk-package-@stdlib/array-float64.a0709ca5.js","chunk-package-@stdlib/assert-has-float64array-support.bc5c6248.js","chunk-package-@stdlib/assert-is-float64array.7365ee46.js","chunk-package-@stdlib/assert-is-little-endian.addb8b0a.js","chunk-package-@stdlib/array-uint8.ad65f98c.js","chunk-package-@stdlib/assert-has-uint8array-support.98d467f1.js","chunk-package-@stdlib/assert-is-uint8array.42423ed2.js","chunk-package-@stdlib/constants-uint8-max.9efd4f5a.js","chunk-package-@stdlib/array-uint16.a9357350.js","chunk-package-@stdlib/assert-has-uint16array-support.51dedf15.js","chunk-package-@stdlib/assert-is-uint16array.eb21f2b4.js","chunk-package-@stdlib/constants-uint16-max.1e240c87.js","chunk-package-@stdlib/number-float64-base-get-high-word.01944d75.js","chunk-package-@stdlib/number-float64-base-from-words.d41a3d2f.js","chunk-package-@stdlib/constants-float64-pinf.bdf82603.js","chunk-package-@stdlib/constants-float64-ninf.9f7ca1b1.js","chunk-package-@stdlib/number-ctor.ec2da30a.js","chunk-package-@stdlib/constants-float64-exponent-bias.ce493dd4.js","chunk-package-@stdlib/constants-float64-max-base2-exponent.324ce314.js","chunk-package-@stdlib/constants-float64-max-base2-exponent-subnormal.103421d6.js","chunk-package-@stdlib/constants-float64-min-base2-exponent-subnormal.68e40ecd.js","chunk-package-@stdlib/math-base-assert-is-nan.5cecf80e.js","chunk-package-@stdlib/math-base-assert-is-infinite.30f8b8e1.js","chunk-package-@stdlib/math-base-special-copysign.e72d638e.js","chunk-package-@stdlib/number-float64-base-normalize.fd04eb7b.js","chunk-package-@stdlib/constants-float64-smallest-normal.2c035c38.js","chunk-package-@stdlib/math-base-special-abs.3866a94e.js","chunk-package-@stdlib/number-float64-base-exponent.2d0b4521.js","chunk-package-@stdlib/constants-float64-high-word-exponent-mask.186c0d77.js","chunk-package-fast-safe-stringify.eb2c2e4d.js","chunk-package-@stripe/react-stripe-js.fbaf3795.js","chunk-package-dayjs.c07d180b.js","chunk-package-@contra/ui-kit.2280203b.js","chunk-package-@sentry/browser.c78f6ea8.js","chunk-package-query-string.03a22a95.js","chunk-package-strict-uri-encode.238e0f1c.js","chunk-package-decode-uri-component.cc9d4ba6.js","chunk-package-split-on-first.97d75553.js","chunk-package-filter-obj.23c3e123.js","chunk-package-@react-aria/tooltip.ce234e49.js","chunk-package-@react-aria/utils.c3f3992f.js","chunk-package-@react-aria/ssr.f23fc836.js","chunk-package-clsx.641e5cac.js","chunk-package-@react-aria/interactions.caf22131.js","chunk-package-react-popper.1ea86a03.js","chunk-package-@popperjs/core.c1fd2ecf.js","chunk-package-framer-motion.21c4ad73.js","chunk-package-tslib.0c0fdf67.js","chunk-package-style-value-types.d5f236c1.js","chunk-package-popmotion.36016c92.js","chunk-package-hey-listen.4b326f17.js","chunk-package-framesync.d3ff8deb.js","chunk-package-relay-sentry.b5aadadd.js","chunk-package-serialize-error.2ba7fbe2.js","chunk-package-@microsoft/fetch-event-source.70f49509.js","chunk-package-ua-parser-js.4d9d3109.js","chunk-package-@styled-system/flexbox.01c65432.js","chunk-package-@styled-system/core.aac4241e.js","chunk-package-object-assign.e9879be4.js","chunk-package-@styled-system/layout.85d7b259.js","chunk-package-localforage.c9c55541.js","chunk-package-@roarr/browser-log-writer.6388cd2f.js","chunk-package-globalthis.98bf6622.js","chunk-package-define-properties.9b058ae4.js","chunk-package-object-keys.7c70ae9e.js","chunk-package-boolean.f36fb086.js","chunk-package-liqe.c248a246.js","chunk-package-nearley.98cd0839.js","chunk-package-ts-error.84a2a1ea.js","chunk-package-roarr.5c75af81.js","chunk-package-fast-printf.1116a167.js","chunk-package-semver-compare.3ba4fe73.js","chunk-package-styled-system.c8137055.js","chunk-package-@styled-system/color.2550b40e.js","chunk-package-@styled-system/typography.a137c813.js","chunk-package-@styled-system/grid.4b0cb833.js","chunk-package-@styled-system/border.497999b3.js","chunk-package-@styled-system/background.2d54c9cb.js","chunk-package-@styled-system/position.a9ca4b39.js","chunk-package-@styled-system/space.1563a972.js","chunk-package-@styled-system/shadow.95a3032c.js","chunk-package-@styled-system/variant.348842f5.js","chunk-package-@styled-system/css.133c4c3d.js","chunk-index.cb794e30.js","chunk-ExternalTextLink.aed79879.js","chunk-TextLink.fb4354fc.js","chunk-Box.05c96ced.js","chunk-MainLayout.11f77fe2.js","chunk-LogoutModal.6535160b.js","chunk-Modal.d2bf1ca9.js","chunk-package-@react-aria/overlays.07e5d719.js","chunk-package-@react-aria/i18n.9847e163.js","chunk-package-@internationalized/message.d1124dc4.js","chunk-package-intl-messageformat.708d4cb9.js","chunk-package-@formatjs/icu-messageformat-parser.442e46c0.js","chunk-package-@formatjs/icu-skeleton-parser.45214662.js","chunk-package-@formatjs/fast-memoize.004ea94a.js","chunk-package-@internationalized/date.97e1a77c.js","chunk-package-@internationalized/number.2ac42a2f.js","chunk-package-dom-helpers.68a9dd38.js","chunk-package-@react-aria/dialog.1b909154.js","chunk-package-@react-aria/focus.8138e9d3.js","chunk-useAuth.3f689521.js","chunk-useRoutes.c9d00657.js","chunk-Navbar.ab088bd9.js","chunk-SignUpModal.7fb1f575.js","chunk-Rocket.f6951551.js","chunk-Loader.34fffcc5.js","chunk-useTikTokAuth.4a2c941f.js","chunk-useClickAway.2ea2fe45.js","chunk-package-@react-hookz/web.48898961.js","chunk-useUserTypeSelector.09cbbea8.js","chunk-package-path-to-regexp.9d34f552.js","chunk-package-@brillout/json-s.5e618128.js","chunk-package-@brillout/libassert.21bc03a9.js"] : void 0),
"/src/pages/:username/opportunities.page.client.tsx": () => __vitePreload(() => import("./entry-src/pages/_username/opportunities.page.client.087eba7d.js"), true ? ["entry-src/pages/_username/opportunities.page.client.087eba7d.js","chunk-package-react-helmet-async.30f1f91c.js","chunk-package-react.c1af14ac.js","chunk-package-@algolia/events.efd56637.js","chunk-package-prop-types.5e0e9c9b.js","chunk-package-react-fast-compare.e4b0239a.js","chunk-package-invariant.c8047148.js","chunk-package-shallowequal.cadff277.js","chunk-package-@contra/slate.08636f14.js","chunk-package-slate.e93c3b84.js","chunk-package-is-plain-object.cceb68c2.js","chunk-package-immer.00062d2a.js","chunk-package-slate-react.9617ddcc.js","chunk-package-direction.289ffac1.js","chunk-package-lodash.3ecbaba0.js","chunk-package-scroll-into-view-if-needed.438df2c9.js","chunk-package-compute-scroll-into-view.5011245c.js","chunk-package-react-dom.7b11fc9c.js","chunk-package-scheduler.f504f37d.js","chunk-package-slate-history.3119a714.js","chunk-package-react-relay.dd9741a7.js","chunk-package-fbjs.5b9968f1.js","chunk-package-react-markdown.f7393356.js","chunk-package-unist-util-visit.c11c8868.js","chunk-package-unist-util-visit-parents.558c2acb.js","chunk-package-unist-util-is.fc1f8248.js","chunk-package-xtend.5ccf7318.js","chunk-package-unified.04c78e8c.js","chunk-package-bail.0517194d.js","chunk-package-is-buffer.fd267e19.js","chunk-package-extend.ee4daf25.js","chunk-package-is-plain-obj.86a2a402.js","chunk-package-trough.aa18dcc9.js","chunk-package-vfile.39d2b86e.js","chunk-package-vfile-message.289aea87.js","chunk-package-unist-util-stringify-position.2fc7d249.js","chunk-package-remark-parse.f9b93817.js","chunk-package-mdast-util-from-markdown.ad8fcc4b.js","chunk-package-micromark.d4eead61.js","chunk-package-parse-entities.003bdd11.js","chunk-package-mdast-util-to-string.d3a8f5f9.js","chunk-package-mdast-add-list-metadata.a12ca1ca.js","chunk-package-react-is.dda36dce.js","chunk-package-html-to-react.5fd6139d.js","chunk-package-lodash.camelcase.8c2ab25d.js","chunk-package-htmlparser2.2dd211c9.js","chunk-package-domhandler.c50f8f8f.js","chunk-package-domelementtype.176ca205.js","chunk-package-domutils.f4918324.js","chunk-package-dom-serializer.e5a3980a.js","chunk-package-relay-runtime.4ef547e3.js","chunk-ProfileOpportunities.f22f88d1.js","chunk-package-styled-components.effe5c08.js","chunk-package-@emotion/stylis.479bf11c.js","chunk-package-@emotion/unitless.d7cd85ab.js","chunk-package-@emotion/is-prop-valid.c4a69d3f.js","chunk-package-@emotion/memoize.8d1457bc.js","chunk-package-hoist-non-react-statics.32461ff5.js","chunk-ClientWorkOpportunityArchiveModal.a8df17b5.js","chunk-constants.a78d51da.js","chunk-constants.ae54f8d3.js","chunk-package-@segment/analytics-next.fb10ccee.js","chunk-package-@lukeed/uuid.dea90eda.js","chunk-package-dset.aed43927.js","chunk-package-spark-md5.7043539d.js","chunk-package-@segment/analytics-core.56686ad5.js","chunk-package-js-cookie.7af8cc18.js","chunk-package-@segment/facade.537706f9.js","chunk-package-obj-case.3bbe5b07.js","chunk-package-new-date.0615965b.js","chunk-package-@segment/isodate.a5457d1f.js","chunk-package-@segment/isodate-traverse.fba36559.js","chunk-package-inherits.1373acbe.js","chunk-package-@segment/tsub.44a839f4.js","chunk-package-tiny-hashes.7adb67a0.js","chunk-package-dlv.6c1e6d0d.js","chunk-package-@stdlib/math-base-special-ldexp.f3739dd7.js","chunk-package-@stdlib/number-float64-base-to-words.69a3b622.js","chunk-package-@stdlib/array-uint32.a7d4a8c0.js","chunk-package-@stdlib/assert-has-uint32array-support.3a90b9c8.js","chunk-package-@stdlib/utils-native-class.b6ac5f06.js","chunk-package-@stdlib/assert-has-tostringtag-support.7de38f99.js","chunk-package-@stdlib/assert-has-symbol-support.6e608581.js","chunk-package-@stdlib/assert-has-own-property.2a25da17.js","chunk-package-@stdlib/assert-is-uint32array.7fb38eae.js","chunk-package-@stdlib/constants-uint32-max.d3c38fca.js","chunk-package-@stdlib/array-float64.a0709ca5.js","chunk-package-@stdlib/assert-has-float64array-support.bc5c6248.js","chunk-package-@stdlib/assert-is-float64array.7365ee46.js","chunk-package-@stdlib/assert-is-little-endian.addb8b0a.js","chunk-package-@stdlib/array-uint8.ad65f98c.js","chunk-package-@stdlib/assert-has-uint8array-support.98d467f1.js","chunk-package-@stdlib/assert-is-uint8array.42423ed2.js","chunk-package-@stdlib/constants-uint8-max.9efd4f5a.js","chunk-package-@stdlib/array-uint16.a9357350.js","chunk-package-@stdlib/assert-has-uint16array-support.51dedf15.js","chunk-package-@stdlib/assert-is-uint16array.eb21f2b4.js","chunk-package-@stdlib/constants-uint16-max.1e240c87.js","chunk-package-@stdlib/number-float64-base-get-high-word.01944d75.js","chunk-package-@stdlib/number-float64-base-from-words.d41a3d2f.js","chunk-package-@stdlib/constants-float64-pinf.bdf82603.js","chunk-package-@stdlib/constants-float64-ninf.9f7ca1b1.js","chunk-package-@stdlib/number-ctor.ec2da30a.js","chunk-package-@stdlib/constants-float64-exponent-bias.ce493dd4.js","chunk-package-@stdlib/constants-float64-max-base2-exponent.324ce314.js","chunk-package-@stdlib/constants-float64-max-base2-exponent-subnormal.103421d6.js","chunk-package-@stdlib/constants-float64-min-base2-exponent-subnormal.68e40ecd.js","chunk-package-@stdlib/math-base-assert-is-nan.5cecf80e.js","chunk-package-@stdlib/math-base-assert-is-infinite.30f8b8e1.js","chunk-package-@stdlib/math-base-special-copysign.e72d638e.js","chunk-package-@stdlib/number-float64-base-normalize.fd04eb7b.js","chunk-package-@stdlib/constants-float64-smallest-normal.2c035c38.js","chunk-package-@stdlib/math-base-special-abs.3866a94e.js","chunk-package-@stdlib/number-float64-base-exponent.2d0b4521.js","chunk-package-@stdlib/constants-float64-high-word-exponent-mask.186c0d77.js","chunk-package-fast-safe-stringify.eb2c2e4d.js","chunk-package-@stripe/react-stripe-js.fbaf3795.js","chunk-package-dayjs.c07d180b.js","chunk-package-@contra/ui-kit.2280203b.js","chunk-package-@sentry/browser.c78f6ea8.js","chunk-package-query-string.03a22a95.js","chunk-package-strict-uri-encode.238e0f1c.js","chunk-package-decode-uri-component.cc9d4ba6.js","chunk-package-split-on-first.97d75553.js","chunk-package-filter-obj.23c3e123.js","chunk-package-@react-aria/tooltip.ce234e49.js","chunk-package-@react-aria/utils.c3f3992f.js","chunk-package-@react-aria/ssr.f23fc836.js","chunk-package-clsx.641e5cac.js","chunk-package-@react-aria/interactions.caf22131.js","chunk-package-react-popper.1ea86a03.js","chunk-package-@popperjs/core.c1fd2ecf.js","chunk-package-framer-motion.21c4ad73.js","chunk-package-tslib.0c0fdf67.js","chunk-package-style-value-types.d5f236c1.js","chunk-package-popmotion.36016c92.js","chunk-package-hey-listen.4b326f17.js","chunk-package-framesync.d3ff8deb.js","chunk-package-relay-sentry.b5aadadd.js","chunk-package-serialize-error.2ba7fbe2.js","chunk-package-@microsoft/fetch-event-source.70f49509.js","chunk-package-ua-parser-js.4d9d3109.js","chunk-package-@styled-system/flexbox.01c65432.js","chunk-package-@styled-system/core.aac4241e.js","chunk-package-object-assign.e9879be4.js","chunk-package-@styled-system/layout.85d7b259.js","chunk-package-localforage.c9c55541.js","chunk-package-@roarr/browser-log-writer.6388cd2f.js","chunk-package-globalthis.98bf6622.js","chunk-package-define-properties.9b058ae4.js","chunk-package-object-keys.7c70ae9e.js","chunk-package-boolean.f36fb086.js","chunk-package-liqe.c248a246.js","chunk-package-nearley.98cd0839.js","chunk-package-ts-error.84a2a1ea.js","chunk-package-roarr.5c75af81.js","chunk-package-fast-printf.1116a167.js","chunk-package-semver-compare.3ba4fe73.js","chunk-package-styled-system.c8137055.js","chunk-package-@styled-system/color.2550b40e.js","chunk-package-@styled-system/typography.a137c813.js","chunk-package-@styled-system/grid.4b0cb833.js","chunk-package-@styled-system/border.497999b3.js","chunk-package-@styled-system/background.2d54c9cb.js","chunk-package-@styled-system/position.a9ca4b39.js","chunk-package-@styled-system/space.1563a972.js","chunk-package-@styled-system/shadow.95a3032c.js","chunk-package-@styled-system/variant.348842f5.js","chunk-package-@styled-system/css.133c4c3d.js","chunk-Modal.d2bf1ca9.js","chunk-package-@react-aria/overlays.07e5d719.js","chunk-package-@react-aria/i18n.9847e163.js","chunk-package-@internationalized/message.d1124dc4.js","chunk-package-intl-messageformat.708d4cb9.js","chunk-package-@formatjs/icu-messageformat-parser.442e46c0.js","chunk-package-@formatjs/icu-skeleton-parser.45214662.js","chunk-package-@formatjs/fast-memoize.004ea94a.js","chunk-package-@internationalized/date.97e1a77c.js","chunk-package-@internationalized/number.2ac42a2f.js","chunk-package-dom-helpers.68a9dd38.js","chunk-Box.05c96ced.js","chunk-package-@react-aria/dialog.1b909154.js","chunk-package-@react-aria/focus.8138e9d3.js","chunk-useRoutes.c9d00657.js","chunk-WorkOpportunityCard.cc9394c0.js","chunk-Menu.4539945d.js","chunk-IconButton.aea5dc9c.js","chunk-MotionDiv.0b195451.js","chunk-useClickAway.2ea2fe45.js","chunk-package-@react-hookz/web.48898961.js","chunk-MountedPortal.da36f79d.js","chunk-WorkOpportunityPostDetails_node.graphql.2592bd61.js","chunk-Card.daa06bbe.js","chunk-AvatarImageFragment.graphql.b62fc76c.js","chunk-Image.cb444f1c.js","chunk-Tag.cff8c27f.js","chunk-index.cb794e30.js","chunk-Image.469e240c.js","chunk-ProjectCoverWrapper_portfolioProjectCover.graphql.2e5bc5fd.js","chunk-AvatarGroup.2ecf782e.js","chunk-AvatarWithPopover.21dad452.js","chunk-ProjectCoverWrapper.18713f8a.js","chunk-ProjectCover.a277b889.js","chunk-WorkTabLayoutContext.476403a6.js","chunk-useLayoutMode.2338ef35.js","chunk-CardListItemAnimation.5e97720f.js","chunk-RolesList.3f7a8e92.js","chunk-getWorkDetailsLabel.2cd52525.js","chunk-jobPosting.65afe5c4.js","chunk-money.6a6548fe.js","chunk-Rocket.f6951551.js","chunk-JobPostingStatusPill.c0c3cc7b.js","chunk-OrganizationLogoEmptyState.77199d3f.js","chunk-actionTypes.7306be21.js","chunk-useOnElementViewed.dc38e8e7.js","chunk-useIsElementVisible.aafffa7f.js","chunk-WorkOpportunitySkeleton.6f08eb56.js","chunk-SkeletonLoader.6ffb87d9.js","chunk-useIsTikTokUser.2355daf3.js","chunk-usePaginatedInfiniteLoad.4521d9f5.js","chunk-BlankCardMessage.3a926b94.js","chunk-CreateCard.ede13442.js","chunk-constants.b8a8c1ea.js","chunk-ExperimentalServiceCardProject.graphql.785ac558.js","chunk-ServiceLayout.styles.354b9968.js","chunk-BackToProfile.7f0931be.js","chunk-ProfileLayout.3768d823.js","chunk-TextLink.fb4354fc.js","chunk-InlineHeadlineEditor.styles.9e780326.js","chunk-AddButton.d8d75521.js","chunk-EditableHeadline.90f8c6fb.js","chunk-package-react-textarea-autosize.3af7e3d9.js","chunk-package-@babel/runtime.a8cbe927.js","chunk-package-use-latest.67521828.js","chunk-package-use-isomorphic-layout-effect.73485743.js","chunk-package-use-composed-ref.29b7b7bf.js","chunk-TextField.b8b911c6.js","chunk-InlineFormElement.ffd75b93.js","chunk-TooltipContainer.a962ef4f.js","chunk-useTrackInput.672e0b33.js","chunk-Toast.styles.86b004b3.js","chunk-ShareButton.3ee59f89.js","chunk-useCopyToClipboard.0e603be3.js","chunk-ProfileSidebar.74cd6883.js","chunk-MobileEditInlineFormActions.84e43763.js","chunk-CircularIconButton.165661dc.js","chunk-WrappedUnlockedFeaturesModal.90934f89.js","chunk-useLastLocation.8e10c06b.js","chunk-EditableAvatar.53dc45dd.js","chunk-ProfileImageCropperUploadInput.33f41abb.js","chunk-actionTypes.753a0069.js","chunk-useUpload.d76c55c6.js","chunk-HoverCropperButton.8aa86ac2.js","chunk-Navbar.ab088bd9.js","chunk-LogoutModal.6535160b.js","chunk-useAuth.3f689521.js","chunk-SignUpModal.7fb1f575.js","chunk-Loader.34fffcc5.js","chunk-useTikTokAuth.4a2c941f.js","chunk-useUserTypeSelector.09cbbea8.js","chunk-package-@hookform/error-message.d5ecdc26.js","chunk-package-react-hook-form.80ea193c.js","chunk-VerifyCheck.ee2314ca.js","chunk-TagGroup.da83ec57.js","chunk-SkillInput.9be0bd71.js","chunk-package-downshift.f26ab569.js","chunk-AddVerticalFades.0351483b.js","chunk-SelectMenu.ea376819.js","chunk-useDebounceValue.a6c7581c.js","chunk-useInteractionTimer.eab17478.js","chunk-ContraPayments.9bca8c7b.js","chunk-BetaTag.3723d828.js","chunk-OnboardingTooltip.d1a9d887.js","chunk-useContraMutation.fd8eaa91.js","chunk-package-@hookform/resolvers.a461d696.js","chunk-package-yup.c3f6c2fd.js","chunk-package-nanoclone.960eb175.js","chunk-package-property-expr.0a2ead22.js","chunk-package-toposort.6d66ab8f.js","chunk-MessageSent.094f41f0.js","chunk-ServiceInquiryModal.02b8e089.js","chunk-utils.2b45fdd0.js","chunk-EmailShortCodeConfirmation.57149d6e.js","chunk-CodeInput.1f397ea7.js","chunk-OnboardingFormContainerHeader.b39e5be5.js","chunk-CurrencyInput.275581fb.js","chunk-ComposedInputGroup.95d80056.js","chunk-AccountRegistrationForm.styles.136dc57f.js","chunk-useReferrerData.a19cd97a.js","chunk-Checkbox.477ea4ca.js","chunk-SolidCheck.13da1238.js","chunk-TimeframeSelect.e96ab99d.js","chunk-Radio.947e1bde.js","chunk-package-@react-aria/radio.1aee8053.js","chunk-package-@react-aria/label.2da4e5f9.js","chunk-package-@react-aria/visually-hidden.a1a8530a.js","chunk-package-@react-stately/radio.94cba2b6.js","chunk-constants.21a03955.js","chunk-ProjectDurationSelect.724b6b66.js","chunk-utilities.05ba7dbe.js","chunk-ContraLightbulb.97e78979.js","chunk-Arm.faa07ad0.js","chunk-LocationInput.6b30c086.js","chunk-package-use-places-autocomplete.4f2f33c7.js","chunk-suspensify.a49ca75e.js","chunk-SidebarSocialLink.49372197.js","chunk-utils.ce8e9a0a.js","chunk-formatUrl.b107ca2b.js","chunk-isValidEmail.9880e035.js","chunk-package-use-async-resource.a2ffdd62.js","chunk-package-object-hash.12d1a08f.js","chunk-ProfileLinks.a152fe70.js","chunk-isValidPublicUrl.acd5d376.js","chunk-ProfileExternalLinkBrandIcon.a9af895b.js","chunk-Plus.a06f8680.js","chunk-ProfileExternalLink.e333ff73.js","chunk-useSortableListView.ba8a8e72.js","chunk-package-@dnd-kit/core.525ba443.js","chunk-package-@dnd-kit/utilities.10c356b3.js","chunk-package-@dnd-kit/accessibility.a87e91f7.js","chunk-package-@dnd-kit/sortable.ebdd03aa.js","chunk-WorkAvailabilityActionMenuMutation.graphql.93f9ec79.js","chunk-ChevronUp.96a6ed0c.js","chunk-BarChartAnalytics.4cc962d7.js","chunk-useExactMatch.baa43a88.js","chunk-ProfileImageCropperModal.d71a1c7d.js","chunk-ProfileImageCropper.2f590386.js","chunk-useUserInterfaceFlags.61ae6e4a.js","chunk-RatingMenu.ade322b8.js","chunk-Table.7703bbb7.js","chunk-Flex.56c9c75c.js","chunk-ContraConfetti.a4da93e4.js","chunk-MainLayout.11f77fe2.js","chunk-OnboardingModal.styles.3ca4632d.js","chunk-buildVariableTitle.36d0e5cf.js","chunk-package-path-to-regexp.9d34f552.js","chunk-package-@brillout/json-s.5e618128.js","chunk-package-@brillout/libassert.21bc03a9.js"] : void 0),
"/src/pages/:username/projects.page.client.tsx": () => __vitePreload(() => import("./entry-src/pages/_username/projects.page.client.a67cc186.js"), true ? ["entry-src/pages/_username/projects.page.client.a67cc186.js","chunk-package-@segment/analytics-next.fb10ccee.js","chunk-package-@lukeed/uuid.dea90eda.js","chunk-package-dset.aed43927.js","chunk-package-@algolia/events.efd56637.js","chunk-package-spark-md5.7043539d.js","chunk-package-@segment/analytics-core.56686ad5.js","chunk-package-js-cookie.7af8cc18.js","chunk-package-@segment/facade.537706f9.js","chunk-package-obj-case.3bbe5b07.js","chunk-package-new-date.0615965b.js","chunk-package-@segment/isodate.a5457d1f.js","chunk-package-@segment/isodate-traverse.fba36559.js","chunk-package-inherits.1373acbe.js","chunk-package-@segment/tsub.44a839f4.js","chunk-package-tiny-hashes.7adb67a0.js","chunk-package-dlv.6c1e6d0d.js","chunk-package-@stdlib/math-base-special-ldexp.f3739dd7.js","chunk-package-@stdlib/number-float64-base-to-words.69a3b622.js","chunk-package-@stdlib/array-uint32.a7d4a8c0.js","chunk-package-@stdlib/assert-has-uint32array-support.3a90b9c8.js","chunk-package-@stdlib/utils-native-class.b6ac5f06.js","chunk-package-@stdlib/assert-has-tostringtag-support.7de38f99.js","chunk-package-@stdlib/assert-has-symbol-support.6e608581.js","chunk-package-@stdlib/assert-has-own-property.2a25da17.js","chunk-package-@stdlib/assert-is-uint32array.7fb38eae.js","chunk-package-@stdlib/constants-uint32-max.d3c38fca.js","chunk-package-@stdlib/array-float64.a0709ca5.js","chunk-package-@stdlib/assert-has-float64array-support.bc5c6248.js","chunk-package-@stdlib/assert-is-float64array.7365ee46.js","chunk-package-@stdlib/assert-is-little-endian.addb8b0a.js","chunk-package-@stdlib/array-uint8.ad65f98c.js","chunk-package-@stdlib/assert-has-uint8array-support.98d467f1.js","chunk-package-@stdlib/assert-is-uint8array.42423ed2.js","chunk-package-@stdlib/constants-uint8-max.9efd4f5a.js","chunk-package-@stdlib/array-uint16.a9357350.js","chunk-package-@stdlib/assert-has-uint16array-support.51dedf15.js","chunk-package-@stdlib/assert-is-uint16array.eb21f2b4.js","chunk-package-@stdlib/constants-uint16-max.1e240c87.js","chunk-package-@stdlib/number-float64-base-get-high-word.01944d75.js","chunk-package-@stdlib/number-float64-base-from-words.d41a3d2f.js","chunk-package-@stdlib/constants-float64-pinf.bdf82603.js","chunk-package-@stdlib/constants-float64-ninf.9f7ca1b1.js","chunk-package-@stdlib/number-ctor.ec2da30a.js","chunk-package-@stdlib/constants-float64-exponent-bias.ce493dd4.js","chunk-package-@stdlib/constants-float64-max-base2-exponent.324ce314.js","chunk-package-@stdlib/constants-float64-max-base2-exponent-subnormal.103421d6.js","chunk-package-@stdlib/constants-float64-min-base2-exponent-subnormal.68e40ecd.js","chunk-package-@stdlib/math-base-assert-is-nan.5cecf80e.js","chunk-package-@stdlib/math-base-assert-is-infinite.30f8b8e1.js","chunk-package-@stdlib/math-base-special-copysign.e72d638e.js","chunk-package-@stdlib/number-float64-base-normalize.fd04eb7b.js","chunk-package-@stdlib/constants-float64-smallest-normal.2c035c38.js","chunk-package-@stdlib/math-base-special-abs.3866a94e.js","chunk-package-@stdlib/number-float64-base-exponent.2d0b4521.js","chunk-package-@stdlib/constants-float64-high-word-exponent-mask.186c0d77.js","chunk-package-react.c1af14ac.js","chunk-package-react-helmet-async.30f1f91c.js","chunk-package-prop-types.5e0e9c9b.js","chunk-package-react-fast-compare.e4b0239a.js","chunk-package-invariant.c8047148.js","chunk-package-shallowequal.cadff277.js","chunk-package-@contra/slate.08636f14.js","chunk-package-slate.e93c3b84.js","chunk-package-is-plain-object.cceb68c2.js","chunk-package-immer.00062d2a.js","chunk-package-slate-react.9617ddcc.js","chunk-package-direction.289ffac1.js","chunk-package-lodash.3ecbaba0.js","chunk-package-scroll-into-view-if-needed.438df2c9.js","chunk-package-compute-scroll-into-view.5011245c.js","chunk-package-react-dom.7b11fc9c.js","chunk-package-scheduler.f504f37d.js","chunk-package-slate-history.3119a714.js","chunk-package-react-relay.dd9741a7.js","chunk-package-fbjs.5b9968f1.js","chunk-package-react-markdown.f7393356.js","chunk-package-unist-util-visit.c11c8868.js","chunk-package-unist-util-visit-parents.558c2acb.js","chunk-package-unist-util-is.fc1f8248.js","chunk-package-xtend.5ccf7318.js","chunk-package-unified.04c78e8c.js","chunk-package-bail.0517194d.js","chunk-package-is-buffer.fd267e19.js","chunk-package-extend.ee4daf25.js","chunk-package-is-plain-obj.86a2a402.js","chunk-package-trough.aa18dcc9.js","chunk-package-vfile.39d2b86e.js","chunk-package-vfile-message.289aea87.js","chunk-package-unist-util-stringify-position.2fc7d249.js","chunk-package-remark-parse.f9b93817.js","chunk-package-mdast-util-from-markdown.ad8fcc4b.js","chunk-package-micromark.d4eead61.js","chunk-package-parse-entities.003bdd11.js","chunk-package-mdast-util-to-string.d3a8f5f9.js","chunk-package-mdast-add-list-metadata.a12ca1ca.js","chunk-package-react-is.dda36dce.js","chunk-package-html-to-react.5fd6139d.js","chunk-package-lodash.camelcase.8c2ab25d.js","chunk-package-htmlparser2.2dd211c9.js","chunk-package-domhandler.c50f8f8f.js","chunk-package-domelementtype.176ca205.js","chunk-package-domutils.f4918324.js","chunk-package-dom-serializer.e5a3980a.js","chunk-package-relay-runtime.4ef547e3.js","chunk-NotFound.a559bf2f.js","chunk-package-styled-components.effe5c08.js","chunk-package-@emotion/stylis.479bf11c.js","chunk-package-@emotion/unitless.d7cd85ab.js","chunk-package-@emotion/is-prop-valid.c4a69d3f.js","chunk-package-@emotion/memoize.8d1457bc.js","chunk-package-hoist-non-react-statics.32461ff5.js","chunk-constants.ae54f8d3.js","chunk-package-fast-safe-stringify.eb2c2e4d.js","chunk-package-@stripe/react-stripe-js.fbaf3795.js","chunk-package-dayjs.c07d180b.js","chunk-package-@contra/ui-kit.2280203b.js","chunk-package-@sentry/browser.c78f6ea8.js","chunk-package-query-string.03a22a95.js","chunk-package-strict-uri-encode.238e0f1c.js","chunk-package-decode-uri-component.cc9d4ba6.js","chunk-package-split-on-first.97d75553.js","chunk-package-filter-obj.23c3e123.js","chunk-package-@react-aria/tooltip.ce234e49.js","chunk-package-@react-aria/utils.c3f3992f.js","chunk-package-@react-aria/ssr.f23fc836.js","chunk-package-clsx.641e5cac.js","chunk-package-@react-aria/interactions.caf22131.js","chunk-package-react-popper.1ea86a03.js","chunk-package-@popperjs/core.c1fd2ecf.js","chunk-package-framer-motion.21c4ad73.js","chunk-package-tslib.0c0fdf67.js","chunk-package-style-value-types.d5f236c1.js","chunk-package-popmotion.36016c92.js","chunk-package-hey-listen.4b326f17.js","chunk-package-framesync.d3ff8deb.js","chunk-package-relay-sentry.b5aadadd.js","chunk-package-serialize-error.2ba7fbe2.js","chunk-package-@microsoft/fetch-event-source.70f49509.js","chunk-package-ua-parser-js.4d9d3109.js","chunk-package-@styled-system/flexbox.01c65432.js","chunk-package-@styled-system/core.aac4241e.js","chunk-package-object-assign.e9879be4.js","chunk-package-@styled-system/layout.85d7b259.js","chunk-package-localforage.c9c55541.js","chunk-package-@roarr/browser-log-writer.6388cd2f.js","chunk-package-globalthis.98bf6622.js","chunk-package-define-properties.9b058ae4.js","chunk-package-object-keys.7c70ae9e.js","chunk-package-boolean.f36fb086.js","chunk-package-liqe.c248a246.js","chunk-package-nearley.98cd0839.js","chunk-package-ts-error.84a2a1ea.js","chunk-package-roarr.5c75af81.js","chunk-package-fast-printf.1116a167.js","chunk-package-semver-compare.3ba4fe73.js","chunk-package-styled-system.c8137055.js","chunk-package-@styled-system/color.2550b40e.js","chunk-package-@styled-system/typography.a137c813.js","chunk-package-@styled-system/grid.4b0cb833.js","chunk-package-@styled-system/border.497999b3.js","chunk-package-@styled-system/background.2d54c9cb.js","chunk-package-@styled-system/position.a9ca4b39.js","chunk-package-@styled-system/space.1563a972.js","chunk-package-@styled-system/shadow.95a3032c.js","chunk-package-@styled-system/variant.348842f5.js","chunk-package-@styled-system/css.133c4c3d.js","chunk-index.cb794e30.js","chunk-ExternalTextLink.aed79879.js","chunk-TextLink.fb4354fc.js","chunk-Box.05c96ced.js","chunk-MainLayout.11f77fe2.js","chunk-LogoutModal.6535160b.js","chunk-Modal.d2bf1ca9.js","chunk-package-@react-aria/overlays.07e5d719.js","chunk-package-@react-aria/i18n.9847e163.js","chunk-package-@internationalized/message.d1124dc4.js","chunk-package-intl-messageformat.708d4cb9.js","chunk-package-@formatjs/icu-messageformat-parser.442e46c0.js","chunk-package-@formatjs/icu-skeleton-parser.45214662.js","chunk-package-@formatjs/fast-memoize.004ea94a.js","chunk-package-@internationalized/date.97e1a77c.js","chunk-package-@internationalized/number.2ac42a2f.js","chunk-package-dom-helpers.68a9dd38.js","chunk-package-@react-aria/dialog.1b909154.js","chunk-package-@react-aria/focus.8138e9d3.js","chunk-useAuth.3f689521.js","chunk-useRoutes.c9d00657.js","chunk-Navbar.ab088bd9.js","chunk-SignUpModal.7fb1f575.js","chunk-Rocket.f6951551.js","chunk-Loader.34fffcc5.js","chunk-useTikTokAuth.4a2c941f.js","chunk-useClickAway.2ea2fe45.js","chunk-package-@react-hookz/web.48898961.js","chunk-useUserTypeSelector.09cbbea8.js","chunk-index.ab59e091.js","chunk-animationUtilities.81add277.js","chunk-BlankCardMessage.3a926b94.js","chunk-blog.300f881f.js","chunk-CircularIconButton.165661dc.js","chunk-Card.daa06bbe.js","chunk-Image.469e240c.js","chunk-ProjectCover.a277b889.js","chunk-ProjectCoverWrapper_portfolioProjectCover.graphql.2e5bc5fd.js","chunk-BlogCategoriesList.df2e4f00.js","chunk-IconButton.aea5dc9c.js","chunk-Menu.4539945d.js","chunk-MotionDiv.0b195451.js","chunk-ProjectCoverWrapper.18713f8a.js","chunk-useOnElementViewed.dc38e8e7.js","chunk-useIsElementVisible.aafffa7f.js","chunk-CreateCard.ede13442.js","chunk-Image.cb444f1c.js","chunk-AvatarImageFragment.graphql.b62fc76c.js","chunk-Tag.cff8c27f.js","chunk-constants.b8a8c1ea.js","chunk-ExperimentalServiceCardProject.graphql.785ac558.js","chunk-ServiceLayout.styles.354b9968.js","chunk-BackToProfile.7f0931be.js","chunk-AvatarGroup.2ecf782e.js","chunk-AvatarWithPopover.21dad452.js","chunk-OwnerUnderConstructionBanner.53be162e.js","chunk-Checkbox.477ea4ca.js","chunk-SolidCheck.13da1238.js","chunk-useSortableListView.ba8a8e72.js","chunk-package-@dnd-kit/core.525ba443.js","chunk-package-@dnd-kit/utilities.10c356b3.js","chunk-package-@dnd-kit/accessibility.a87e91f7.js","chunk-package-@dnd-kit/sortable.ebdd03aa.js","chunk-useRouteParameter.5492060c.js","chunk-ProfileLayout.3768d823.js","chunk-InlineHeadlineEditor.styles.9e780326.js","chunk-AddButton.d8d75521.js","chunk-EditableHeadline.90f8c6fb.js","chunk-package-react-textarea-autosize.3af7e3d9.js","chunk-package-@babel/runtime.a8cbe927.js","chunk-package-use-latest.67521828.js","chunk-package-use-isomorphic-layout-effect.73485743.js","chunk-package-use-composed-ref.29b7b7bf.js","chunk-TextField.b8b911c6.js","chunk-InlineFormElement.ffd75b93.js","chunk-TooltipContainer.a962ef4f.js","chunk-useTrackInput.672e0b33.js","chunk-Toast.styles.86b004b3.js","chunk-ShareButton.3ee59f89.js","chunk-useCopyToClipboard.0e603be3.js","chunk-useIsTikTokUser.2355daf3.js","chunk-ProfileSidebar.74cd6883.js","chunk-MobileEditInlineFormActions.84e43763.js","chunk-WrappedUnlockedFeaturesModal.90934f89.js","chunk-useLastLocation.8e10c06b.js","chunk-EditableAvatar.53dc45dd.js","chunk-ProfileImageCropperUploadInput.33f41abb.js","chunk-actionTypes.753a0069.js","chunk-useUpload.d76c55c6.js","chunk-HoverCropperButton.8aa86ac2.js","chunk-package-@hookform/error-message.d5ecdc26.js","chunk-package-react-hook-form.80ea193c.js","chunk-VerifyCheck.ee2314ca.js","chunk-TagGroup.da83ec57.js","chunk-SkillInput.9be0bd71.js","chunk-package-downshift.f26ab569.js","chunk-AddVerticalFades.0351483b.js","chunk-SelectMenu.ea376819.js","chunk-useDebounceValue.a6c7581c.js","chunk-useInteractionTimer.eab17478.js","chunk-ContraPayments.9bca8c7b.js","chunk-BetaTag.3723d828.js","chunk-OnboardingTooltip.d1a9d887.js","chunk-MountedPortal.da36f79d.js","chunk-useContraMutation.fd8eaa91.js","chunk-package-@hookform/resolvers.a461d696.js","chunk-package-yup.c3f6c2fd.js","chunk-package-nanoclone.960eb175.js","chunk-package-property-expr.0a2ead22.js","chunk-package-toposort.6d66ab8f.js","chunk-MessageSent.094f41f0.js","chunk-ServiceInquiryModal.02b8e089.js","chunk-utils.2b45fdd0.js","chunk-EmailShortCodeConfirmation.57149d6e.js","chunk-CodeInput.1f397ea7.js","chunk-OnboardingFormContainerHeader.b39e5be5.js","chunk-CurrencyInput.275581fb.js","chunk-ComposedInputGroup.95d80056.js","chunk-AccountRegistrationForm.styles.136dc57f.js","chunk-useReferrerData.a19cd97a.js","chunk-TimeframeSelect.e96ab99d.js","chunk-OrganizationLogoEmptyState.77199d3f.js","chunk-Radio.947e1bde.js","chunk-package-@react-aria/radio.1aee8053.js","chunk-package-@react-aria/label.2da4e5f9.js","chunk-package-@react-aria/visually-hidden.a1a8530a.js","chunk-package-@react-stately/radio.94cba2b6.js","chunk-constants.21a03955.js","chunk-jobPosting.65afe5c4.js","chunk-ProjectDurationSelect.724b6b66.js","chunk-utilities.05ba7dbe.js","chunk-ContraLightbulb.97e78979.js","chunk-Arm.faa07ad0.js","chunk-LocationInput.6b30c086.js","chunk-package-use-places-autocomplete.4f2f33c7.js","chunk-suspensify.a49ca75e.js","chunk-SidebarSocialLink.49372197.js","chunk-utils.ce8e9a0a.js","chunk-formatUrl.b107ca2b.js","chunk-isValidEmail.9880e035.js","chunk-package-use-async-resource.a2ffdd62.js","chunk-package-object-hash.12d1a08f.js","chunk-ProfileLinks.a152fe70.js","chunk-isValidPublicUrl.acd5d376.js","chunk-ProfileExternalLinkBrandIcon.a9af895b.js","chunk-Plus.a06f8680.js","chunk-ProfileExternalLink.e333ff73.js","chunk-WorkAvailabilityActionMenuMutation.graphql.93f9ec79.js","chunk-ChevronUp.96a6ed0c.js","chunk-BarChartAnalytics.4cc962d7.js","chunk-useExactMatch.baa43a88.js","chunk-ProfileImageCropperModal.d71a1c7d.js","chunk-ProfileImageCropper.2f590386.js","chunk-useUserInterfaceFlags.61ae6e4a.js","chunk-RatingMenu.ade322b8.js","chunk-Table.7703bbb7.js","chunk-Flex.56c9c75c.js","chunk-ContraConfetti.a4da93e4.js","chunk-OnboardingModal.styles.3ca4632d.js","chunk-buildVariableTitle.36d0e5cf.js","chunk-package-path-to-regexp.9d34f552.js","chunk-package-@brillout/json-s.5e618128.js","chunk-package-@brillout/libassert.21bc03a9.js"] : void 0),
  

After:

"/renderer/_default.page.client.tsx": () => __vitePreload(() => import("./entry-renderer/_default.page.client.a4d7fc3f.js"), true ? __viteFile([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188]) : void 0),
"/renderer/_error.page.client.tsx": () => __vitePreload(() => import("./entry-renderer/_error.page.client.7d2029dc.js"), true ? __viteFile([189,108,58,4,81,109,101,110,83,84,85,86,87,88,89,90,91,57,59,92,190,111,93,112,113,114,115,116,103,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,94,95,96,97,98,99,100,102,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,104,105,106,107,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,191,192,193,178,194,195,196,167,168,169,170,171,172,173,174,175,176,197,198,199,200,201,202,185,203,204,205,206,207,186,187,188]) : void 0),
"/src/pages/:username/opportunities.page.client.tsx": () => __vitePreload(() => import("./entry-src/pages/_username/opportunities.page.client.4a943f89.js"), true ? __viteFile([208,108,58,4,81,109,101,110,83,84,85,86,87,88,89,90,91,57,59,92,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,93,94,95,96,97,98,99,100,102,209,111,112,113,114,115,116,210,211,103,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,104,105,106,107,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,196,167,168,169,170,171,172,173,174,175,176,178,197,198,200,212,213,214,179,205,206,215,216,217,218,219,220,191,221,222,223,224,225,226,227,228,229,230,231,232,233,185,234,235,236,181,182,237,238,239,240,241,242,243,244,245,246,247,193,248,249,250,251,252,253,254,255,256,257,258,259,184,260,261,262,263,264,265,180,266,267,268,269,270,201,195,199,202,203,204,207,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,194,343,344,186,187,188]) : void 0),
"/src/pages/:username/projects.page.client.tsx": () => __vitePreload(() => import("./entry-src/pages/_username/projects.page.client.cc0b28f2.js"), true ? __viteFile([345,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,58,108,81,109,101,110,83,84,85,86,87,88,89,90,91,57,59,92,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,93,94,95,96,97,98,99,100,102,190,111,112,113,114,115,116,103,104,105,106,107,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,191,192,193,178,194,195,196,167,168,169,170,171,172,173,174,175,176,197,198,199,200,201,202,185,203,204,205,206,207,346,347,241,348,264,217,221,226,222,349,214,213,179,225,181,182,242,219,218,220,243,244,245,246,223,224,350,300,301,327,328,329,330,331,183,247,248,249,250,251,252,253,254,255,256,257,258,259,184,260,261,239,262,263,265,180,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,215,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,302,235,303,304,305,306,307,308,232,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,332,333,334,335,336,337,338,339,340,341,342,343,344,186,187,188]) : void 0),

File size impact

Before:

dist/client/entry-entry-client-routing.0a125d0d.js                                             1743.55 KiB / gzip: 103.27 KiB
dist/client/entry-entry-client-routing.0a125d0d.js.map                                         204.29 KiB

After:

dist/client/entry-entry-client-routing.89e971e8.js                                             318.11 KiB / gzip: 47.20 KiB
dist/client/entry-entry-client-routing.89e971e8.js.map                                         204.29 KiB

The end result is a faster page loading time because of lesser file size and less time taken to parse the file.

What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Before submitting the PR, please make sure you do the following

  • Read the Contributing Guidelines.
  • [ x Read the Pull Request Guidelines and follow the Commit Convention.
  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
  • Ideally, include relevant tests that fail without this PR but pass with it.

brillout
brillout previously approved these changes Aug 1, 2022
@brillout
Copy link
Contributor

brillout commented Aug 1, 2022

LGTM; this makes a lot of sense. And I can confirm this drastically reduces KBs and is not vite-plugin-ssr specific.

@bluwy bluwy added p3-significant High priority enhancement (priority) feat: build labels Aug 2, 2022
@gajus
Copy link
Contributor Author

gajus commented Aug 2, 2022

LGTM

bluwy
bluwy previously approved these changes Aug 2, 2022
Copy link
Member

@bluwy bluwy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for finding this optimization! This looks good, but I'll wait for another team member to have their eye on this in case of something I've missed. I'll put this on the team board too so we don't forget.

brillout
brillout previously approved these changes Aug 2, 2022
@antfu antfu changed the title feat: introduce __viteFile perf: reduce bundle size for dynamic chunks import Aug 2, 2022
@antfu antfu changed the title perf: reduce bundle size for dynamic chunks import perf: reduce bundle size for chunk imports Aug 2, 2022
@gajus gajus dismissed stale reviews from brillout and bluwy via f2f547a August 2, 2022 16:44
antfu
antfu previously approved these changes Aug 2, 2022
Co-authored-by: Anthony Fu <anthonyfu117@hotmail.com>
Comment on lines 489 to 496
const __viteFileDeps = ${JSON.stringify(
fileDeps.map((fileDep) =>
relativePreloadUrls ? path.relative(path.dirname(file), fileDep) : fileDep
)
)}
function __viteMapDep(indexes) {
return indexes.map((i) => __viteFileDeps[i])
}`)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like some of our tests invokes __viteMapDep on initialize, causing ReferenceError: Cannot access uninitialized variable. in some cases. We might have to move __viteFileDeps back in the function like before, or prepend this code instead.

Also this file needs to run pnpm format.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved it back into __viteMapDep and applied npnm format.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we prepend it instead? I am still not so sure about having it nested. Even JS engine might optimize it, it still needs to create new references and free the memory on each run.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm yeah I guess we could try prepend first. Thought it might have perf implications since we're prepending in a sourcemap, but I don't think it would matter actually.

Copy link
Member

@antfu antfu Aug 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another trick I can think about is:

function __viteMapDep(indexes) {
  if(!this.files)
    this.files = JSON.stringify({})
  return indexes.map((i) => this.files[i])
}

@sapphi-red
Copy link
Member

Awesome!

Some random thoughts. (Doesn't need to be included in this PR)

  • If we could sort the values in __viteFileDeps, the compressed file size might be reduced
  • If we could use __viteMapDep helper for import, the file size will be reduced a bit

@gajus
Copy link
Contributor Author

gajus commented Aug 4, 2022

Awesome!

Some random thoughts. (Doesn't need to be included in this PR)

  • If we could sort the values in __viteFileDeps, the compressed file size might be reduced
  • If we could use __viteMapDep helper for import, the file size will be reduced a bit

Confirming that these are great suggestions, but not planned as part of this PR.

@gajus
Copy link
Contributor Author

gajus commented Aug 6, 2022

What are we waiting for to get this merged?

@antfu
Copy link
Member

antfu commented Aug 7, 2022

I still hold my opinion on the perf loss on runtime without hoisting

image

@gajus
Copy link
Contributor Author

gajus commented Aug 7, 2022

I still hold my opinion on the perf loss on runtime without hoisting

image

This feels like subjective optimization that can be addressed as a separate PR.

@antfu
Copy link
Member

antfu commented Aug 8, 2022

I don't understand how you consider it "subjective". If this PR trade-off runtime performance for bundling size, then I wouldn't consider this to be a perf improvement. I believe it still belong to the scope of this PR.

@gajus
Copy link
Contributor Author

gajus commented Aug 8, 2022

I don't understand how you consider it "subjective". If this PR trade-off runtime performance for bundling size, then I wouldn't consider this to be a perf improvement. I believe it still belong to the scope of this PR.

That test you showed is irrelevant to any real-world user scenario. It assumes millions of operations per second, where in real-world this function is called a few hundred times throughout the entire lifespan of the application.

v8 parses that object at the time of parsing the document, regardless of where you put it. The real optimization would be to provide it as a string and parse it when first used. That would reduce main worker thread time when initializating the app.

Such optimizations all they do is obscure the intention of the code with no real benefit to the end user.

But have it your way. Pushed an update.

@benmccann
Copy link
Collaborator

@gajus it looks like you need to run prettier as the lint check is failing

@gajus
Copy link
Contributor Author

gajus commented Aug 9, 2022

Done

@bluwy bluwy mentioned this pull request Sep 1, 2022
4 tasks
@patak-dev patak-dev added this to the 3.2 milestone Sep 2, 2022
@patak-dev
Copy link
Member

Great optimization @gajus. I've added it to the 3.2 milestone but we may need to actually delay this until Vite 4. There are projects and plugins out there that are parsing the current module preload lists to modify the paths using regex, because it wasn't possible to do configure how module preload worked in Vite.
So we first need to give these folks a way out of these hacks, and then we can do it. See WIP for module preload options here:

@patak-dev patak-dev modified the milestones: 3.2, 4.0 Sep 3, 2022
@benmccann
Copy link
Collaborator

Work on Vite 4 has begun. It looks like there's a merge conflict in this PR that would need to be resolved

@gajus
Copy link
Contributor Author

gajus commented Nov 8, 2022

No longer going to champion this, but someone else feel free to takeover.

@bluwy bluwy removed this from the 4.0 milestone Dec 7, 2022
@benmccann benmccann added the performance Performance related enhancement label Mar 14, 2023
@patak-dev patak-dev added this to the 5.0 milestone Mar 21, 2023
@gajus
Copy link
Contributor Author

gajus commented Oct 6, 2023

We ended up monkey patching node_modules (albeit with some difficulty)

This reduced the entry script size from 539 692 bytes to 336 217 bytes, i.e. 40% reduction.

But what is more surprising is that the total bundle size reduced from 3.3 MB to 2.5 MB, i.e. 24% reduction.

@gajus
Copy link
Contributor Author

gajus commented Oct 6, 2023

@benmccann can I get your support to get this released to the public?

What needs to be done?

@benmccann
Copy link
Collaborator

What needs to be done?

The merge conflict needs to be fixed. This would be a good time to do it if you'd like to get the change in since we're currently in beta for Vite 5 and patak had concerns about this potentially being a breaking change: #9491 (comment)

@gajus
Copy link
Contributor Author

gajus commented Oct 7, 2023

Will re-open a new PR. Quite a few things changed upstream to continue on this branch.

@gajus gajus closed this Oct 7, 2023
@gajus
Copy link
Contributor Author

gajus commented Oct 7, 2023

@benmccann #14550

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat: build p3-significant High priority enhancement (priority) performance Performance related enhancement
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

7 participants