Entrypoints
Every compiled bundle and the Liquid file that loads it, for finding which file to edit to change something on the page.
The left column of each table is a path relative to src/entrypoints. It is the exact string you pass to the vite-tag
snippet:
{%- render 'vite-tag' with 'mini-cart/elements/mini-cart.ts' -%}A script generates the tables below. After adding, moving or removing an entrypoint, run it from the repository root:
python3 doc-site/scripts/build-entrypoint-table.pyThe script fills the "Why" column of the second table from the NOTES map at its top. Add a note there for any new file
that appears in that table.
src/entrypoints holds 116 files. 62 Liquid files render 101 of them.
Rendered entrypoints
| Entrypoint | Rendered by |
|---|---|
cart-reward-banner.css | sections/cart-reward-banner.liquid, snippets/global-popup.liquid |
cart-reward-banner.ts | sections/cart-reward-banner.liquid |
clickable-slideshow.ts | sections/clickable-slideshow.liquid |
collection-page-updates.ts | snippets/collection-page-updates.liquid |
custom.css | layout/theme.discovery-bar.liquid, layout/theme.liquid, layout/theme.medispa-redesign.liquid |
eyebrow-banner.css | snippets/eyebrow-banner.liquid |
eyebrow-banner.ts | snippets/eyebrow-banner.liquid |
global-popup.css | snippets/global-popup.liquid |
homepage-prominence-banner.css | sections/homepage-prominence-banner.liquid |
homepage-prominence-banner.ts | sections/homepage-prominence-banner.liquid |
homepage-redesign/components/blog-posts-redesign.css | sections/blog-posts-redesign.liquid |
homepage-redesign/components/carousel-navigation.css | snippets/carousel-navigation.liquid |
homepage-redesign/components/cvp-carousel.css | sections/cvp-carousel.liquid |
homepage-redesign/components/cvp-carousel.ts | sections/cvp-carousel.liquid |
homepage-redesign/components/explore-by-category.css | sections/explore-by-category.liquid |
homepage-redesign/components/gift-idea-cards.css | sections/gift-idea-cards.liquid |
homepage-redesign/components/hero-banner.css | sections/hero-banner.liquid |
homepage-redesign/components/hero-banner.ts | sections/hero-banner.liquid |
homepage-redesign/components/medispa-service-callout.css | sections/medispa-service-callout.liquid |
homepage-redesign/components/need-help-popup.css | sections/need-help-popup.liquid |
homepage-redesign/components/need-help-popup.ts | sections/need-help-popup.liquid |
homepage-redesign/components/our-difference.css | sections/our-difference.liquid |
homepage-redesign/components/plp-segmentation-tiles.css | sections/plp-segmentation-tiles.liquid |
homepage-redesign/components/plp-segmentation-tiles.ts | sections/plp-segmentation-tiles.liquid |
homepage-redesign/components/popular-categories.css | sections/popular-categories.liquid |
homepage-redesign/components/product-card.css | sections/product-recommendations.liquid, snippets/homepage-component-product-card.liquid, snippets/tbyb-product-card.liquid |
homepage-redesign/components/product-card.ts | sections/product-recommendations.liquid, snippets/homepage-component-product-card.liquid, snippets/tbyb-product-card.liquid |
homepage-redesign/components/products-carousel.css | snippets/homepage-component-products-carousel-shell.liquid, snippets/homepage-component-products-carousel.liquid |
homepage-redesign/components/products-carousel.ts | snippets/homepage-component-products-carousel-shell.liquid, snippets/homepage-component-products-carousel.liquid |
homepage-redesign/components/recently-viewed.ts | snippets/homepage-component-recently-viewed.liquid |
homepage-redesign/components/review-carousel.css | sections/review-carousel.liquid |
homepage-redesign/components/review-carousel.ts | sections/review-carousel.liquid |
homepage-redesign/components/seo-content-redesign.css | sections/seo-content-redesign.liquid |
homepage-redesign/components/shop-by-routine.css | sections/shop-by-routine.liquid |
homepage-redesign/components/shop-by-routine.ts | sections/shop-by-routine.liquid |
homepage-redesign/components/shop-popular-brand-carousel.css | sections/shop-popular-brand-carousel.liquid |
homepage-redesign/components/shop-popular-brand-carousel.ts | sections/shop-popular-brand-carousel.liquid |
homepage-redesign/components/skin-type-carousels.css | sections/skin-type-carousels.liquid |
homepage-redesign/components/skin-type-carousels.ts | sections/skin-type-carousels.liquid |
homepage-redesign/components/special-offer-block.css | sections/special-offer-block.liquid |
homepage-redesign/components/sticky-category-bar.css | sections/sticky-category-bar.liquid |
homepage-redesign/components/sticky-category-bar.ts | sections/sticky-category-bar.liquid |
homepage-redesign/components/tabbed-carousels.css | sections/items-youll-love.liquid |
homepage-redesign/components/tabbed-carousels.ts | sections/items-youll-love.liquid |
homepage-redesign/components/unlock-free-bonus.css | sections/unlock-free-bonus.liquid |
homepage-redesign/components/unlock-free-bonus.ts | sections/unlock-free-bonus.liquid |
how-it-works-slider.ts | sections/how-it-works-slider.liquid |
klaviyo-popup-trigger.ts | snippets/klaviyo-popup-trigger.liquid |
lazy-mutation-callback.ts | layout/theme.liquid |
medispa-calendar-react.tsx | snippets/medispa-calendar-placeholder.liquid |
medispa-calendar.css | snippets/medispa-calendar-placeholder.liquid |
medispa-navbar.css | sections/discovery-bar-header.liquid, sections/medispa-header.liquid |
medispa-overview-services-grid.ts | sections/overview-services-grid.liquid |
medispa-overview-styles.css | layout/theme.discovery-bar.liquid, layout/theme.medispa-redesign.liquid |
medispa-quick-navigation-bar.css | sections/medispa-quick-navigation-bar.liquid |
medispa-redesign-styles.css | layout/theme.discovery-bar.liquid, layout/theme.medispa-redesign.liquid |
medispa-sidebar.ts | sections/discovery-bar-header.liquid, sections/medispa-header.liquid |
medispa-tnc-popup.css | snippets/medispa-tnc-popup.liquid |
medispa-tnc-popup.ts | snippets/medispa-tnc-popup.liquid |
menu-redesign.css | layout/theme.liquid |
menu-redesign.ts | sections/header.liquid |
mini-cart/components/free-gifts.ts | snippets/mini-cart.free-gifts.liquid |
mini-cart/elements/mini-cart-clear-cart.css | snippets/mini-cart.clear-cart.liquid |
mini-cart/elements/mini-cart-clear-cart.ts | snippets/mini-cart.clear-cart.liquid |
mini-cart/elements/mini-cart-discount-code.css | snippets/mini-cart.discount-code.liquid |
mini-cart/elements/mini-cart-discount-code.ts | snippets/mini-cart.discount-code.liquid |
mini-cart/elements/mini-cart-footer.css | snippets/mini-cart.footer.liquid |
mini-cart/elements/mini-cart-footer.ts | snippets/mini-cart.footer.liquid |
mini-cart/elements/mini-cart-gifts-accordion.css | snippets/mini-cart.gifts-accordion.liquid |
mini-cart/elements/mini-cart-gifts-accordion.ts | snippets/mini-cart.gifts-accordion.liquid |
mini-cart/elements/mini-cart-header.css | snippets/mini-cart.header.liquid |
mini-cart/elements/mini-cart-header.ts | snippets/mini-cart.header.liquid |
mini-cart/elements/mini-cart-line-items.css | snippets/mini-cart.line-items.liquid |
mini-cart/elements/mini-cart-line-items.ts | snippets/mini-cart.line-items.liquid |
mini-cart/elements/mini-cart-progress-bar.css | snippets/mini-cart.progress-bar.liquid |
mini-cart/elements/mini-cart-progress-bar.ts | snippets/mini-cart.progress-bar.liquid |
mini-cart/elements/mini-cart-recommendations.css | snippets/mini-cart.recommendations.liquid |
mini-cart/elements/mini-cart-recommendations.ts | snippets/mini-cart.recommendations.liquid |
mini-cart/elements/mini-cart-summary.css | snippets/mini-cart.summary.liquid |
mini-cart/elements/mini-cart-summary.ts | snippets/mini-cart.summary.liquid |
mini-cart/elements/mini-cart.css | sections/mini-cart.liquid |
mini-cart/elements/mini-cart.ts | sections/mini-cart.liquid |
overview-services-grid.css | sections/overview-services-grid.liquid |
pack-options.css | snippets/pack-options.liquid |
pack-options.ts | snippets/pack-options.liquid |
pdp-gift-card-form.ts | snippets/pdp-gift-card-form.liquid |
popup-logic.ts | snippets/popup-logic.liquid |
product-accordion.ts | sections/medispa-faqs.liquid |
product-popover.ts | layout/theme.discovery-bar.liquid, layout/theme.liquid, layout/theme.medispa-redesign.liquid |
purchase-gift-manager.ts | layout/theme.liquid |
select-options-modal.css | sections/select-options-modal.liquid |
select-options-modal.ts | sections/select-options-modal.liquid |
styles.css | layout/theme.discovery-bar.liquid, layout/theme.liquid, layout/theme.medispa-redesign.liquid |
subscription-page.css | layout/theme.liquid |
swatch-filters.ts | snippets/swatch-filters.liquid |
tbyb-product-card.css | snippets/tbyb-product-card.liquid |
tbyb-product-card.ts | snippets/tbyb-product-card.liquid |
tbyb-product-grid.css | sections/tbyb-product-grid.liquid |
theme.css | layout/theme.discovery-bar.liquid, layout/theme.liquid, layout/theme.medispa-redesign.liquid |
theme.styles.css | layout/theme.discovery-bar.liquid, layout/theme.liquid, layout/theme.medispa-redesign.liquid |
upnova-sticky-fix.ts | layout/theme.discovery-bar.liquid, layout/theme.liquid, layout/theme.medispa-redesign.liquid |
Not rendered by any Liquid file
Other files import some of these as modules. Check before deleting any of them.
| File | Why |
|---|---|
counter.ts | Unused. Demo counter from the project template, with its own usage example in a comment. |
main.ts | Unused. Contains only the Vite modulepreload polyfill import. |
mini-cart/elements/00-example.ts | Deliberate template. Copy it when adding a mini-cart element. |
mini-cart/internals/cart-service.ts | Imported by mini-cart.ts. |
mini-cart/internals/cart-store.ts | Imported by mini-cart.ts. |
mini-cart/internals/checkout-chain.ts | Imported by mini-cart-footer.ts. |
mini-cart/internals/command-controller.ts | Imported by mini-cart.ts. |
mini-cart/internals/core.ts | Imported across the mini-cart. Holds event names and types. |
mini-cart/internals/event-bus.ts | Imported across the mini-cart. |
mini-cart/internals/fetch-interceptor.ts | Imported by mini-cart.ts. |
mini-cart/internals/line-item-properties-update-chain.ts | Imported by mini-cart-line-items.ts and by both rules. |
mini-cart/internals/line-item-rules/promotion-label-quantity-rule.ts | Imported by mini-cart-line-items.ts. |
mini-cart/internals/line-item-rules/remaining-amount-recalculation-rule.ts | Imported by mini-cart-line-items.ts. |
mini-cart/internals/simple-cart-service.ts | Imported by mini-cart.ts and the command controller. |
quick-add-modal.css | Unused. Styles a modal no Liquid file renders. |
utils.ts | Shared module. Imported through @/entrypoints/utils by the booking calendar and a mini-cart rule. |
How to read the second table
A file with no Liquid consumer is one of three things.
Another entrypoint imports it. Everything under mini-cart/internals/ is in this group. mini-cart.ts imports those
files, and Vite emits each one as its own chunk because it sits in the entrypoints directory. The page loads them as
module preloads, which you can see in snippets/vite-tag.liquid.
It is a shared module stored in this directory. The booking calendar and a mini-cart rule import utils.ts through the
@/ alias.
It is unused. Legacy and unused code lists these files.
Adding a new entrypoint
- Create the file under
src/entrypoints, either directly in that directory or in a subdirectory. The build finds it automatically, and there is no list to update. - Run
npm run build, or keepnpm run devrunning, sosnippets/vite-tag.liquidregenerates. - Render it from your Liquid with the path relative to
src/entrypoints, without a leading slash. - Regenerate this page.
A vite-tag render whose path matches no branch of the generated snippet outputs nothing and reports no error. If your
script does not run, check the path first. See Asset not loading.
How the directory is organised
src/entrypoints/homepage-redesign/components/ holds the homepage sections built during the redesign. A section there
usually has a .ts and .css pair, and the same Liquid file renders both.
src/entrypoints/mini-cart/ has two subdirectories. elements/ holds custom elements, each rendered by its own
snippet. internals/ holds modules that other files import and no Liquid renders.
src/components/ holds code that other files import and Liquid never renders. Every file in src/entrypoints is a
build target, and every file in src/components or src/lib is a module.
Related
- Build pipeline explains how these files compile.
- Codebase map covers the wider directory layout.