{
  "product": "Specification (reference)",
  "title": "Bundler",
  "summary": "Turn a module graph into deployable assets, quickly and reproducibly.",
  "category": "devtools",
  "entries": [
    {
      "path": [
        "AI",
        "Graph",
        "Entry points and dependency resolution"
      ],
      "value": "",
      "status": "yes",
      "note": "node and browser resolution rules"
    },
    {
      "path": [
        "AI",
        "Graph",
        "ESM and CommonJS interop"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Graph",
        "Dynamic import creates a split point"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Graph",
        "Path aliases and conditional exports"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Transform",
        "Transpile via a plugin pipeline"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Transform",
        "CSS, images and assets as first-class modules"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Transform",
        "Environment variable replacement at build time"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Optimise",
        "Tree shaking of unused exports"
      ],
      "value": "",
      "status": "yes",
      "note": "side-effect flags honoured"
    },
    {
      "path": [
        "AI",
        "Optimise",
        "Minification and dead-code elimination"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Optimise",
        "Code splitting with shared chunks"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Optimise",
        "Content hashing in output filenames"
      ],
      "value": "",
      "status": "yes",
      "note": "for long-term caching"
    },
    {
      "path": [
        "AI",
        "Output",
        "Source maps that map back to original sources"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Output",
        "Build manifest for server-side asset lookup"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Output",
        "Target selection"
      ],
      "value": "browser, node, es2020",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Dev",
        "Dev server with hot module replacement"
      ],
      "value": "",
      "status": "yes",
      "note": "state preserved where possible"
    },
    {
      "path": [
        "AI",
        "Dev",
        "Incremental rebuild on change"
      ],
      "value": "",
      "status": "yes",
      "note": "sub-second for a typical edit"
    },
    {
      "path": [
        "AI",
        "Trust",
        "Reproducible output for identical input"
      ],
      "value": "",
      "status": "yes",
      "note": ""
    },
    {
      "path": [
        "AI",
        "Trust",
        "Bundle analysis report"
      ],
      "value": "",
      "status": "yes",
      "note": "what is big and why"
    }
  ]
}
