{"record":{"id":"01ffd8cdffca89cd","repo":"vitejs/vite","slug":"multiple-entry-points-are-not-supported-when-outpu","errorCode":null,"errorMessage":"Multiple entry points are not supported when output formats include \"umd\" or \"iife\".","messagePattern":"Multiple entry points are not supported when output formats include \"umd\" or \"iife\"\\.","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/vite/src/node/build.ts","lineNumber":1065,"sourceCode":"\nexport function resolveBuildOutputs(\n  outputs: OutputOptions | OutputOptions[] | undefined,\n  libOptions: LibraryOptions | false,\n  logger: Logger,\n): OutputOptions | OutputOptions[] | undefined {\n  if (libOptions) {\n    const libHasMultipleEntries =\n      typeof libOptions.entry !== 'string' &&\n      libOptions.entry &&\n      Object.values(libOptions.entry).length > 1\n    const libFormats =\n      libOptions.formats ||\n      (libHasMultipleEntries ? ['es', 'cjs'] : ['es', 'umd'])\n\n    if (!Array.isArray(outputs)) {\n      if (libFormats.includes('umd') || libFormats.includes('iife')) {\n        if (libHasMultipleEntries) {\n          throw new Error(\n            'Multiple entry points are not supported when output formats include \"umd\" or \"iife\".',\n          )\n        }\n\n        if (!libOptions.name) {\n          throw new Error(\n            'Option \"build.lib.name\" is required when output formats include \"umd\" or \"iife\".',\n          )\n        }\n      }\n\n      return libFormats.map((format) => ({ ...outputs, format }))\n    }\n\n    // By this point, we know \"outputs\" is an Array.\n    if (libOptions.formats) {\n      logger.warn(\n        colors.yellow(","sourceCodeStart":1047,"sourceCodeEnd":1083,"githubUrl":"https://github.com/vitejs/vite/blob/b4d66fee14d970f45b8a6f3d7d6aee73ca9b88ab/packages/vite/src/node/build.ts#L1047-L1083","documentation":"UMD and IIFE formats produce a single self-executing bundle with one global variable, so they cannot represent multiple entry points. resolveBuildOutputs throws when lib.formats includes 'umd' or 'iife', the output is not already an array, and the lib.entry object has more than one key.","triggerScenarios":"Configuring build.lib.entry as an object with 2+ entries (e.g. { main: 'src/main.ts', ui: 'src/ui.ts' }) while build.lib.formats contains 'umd' or 'iife'.","commonSituations":"Multi-entry component libraries that default formats to include umd for script-tag consumption; copy-pasting a single-entry umd config and then adding more entries.","solutions":["Restrict lib.formats to multi-entry-friendly formats: ['es', 'cjs'].","Keep only one entry when you must emit umd/iife (split the multi-entry build from the umd build).","If you need umd for several entries, run multiple Vite builds with a different single entry each."],"exampleFix":"// before\nbuild: {\n  lib: { entry: { main: 'src/main.ts', ui: 'src/ui.ts' }, formats: ['es', 'umd'] }\n}\n// after\nbuild: {\n  lib: { entry: { main: 'src/main.ts', ui: 'src/ui.ts' }, formats: ['es', 'cjs'] }\n}","handlingStrategy":"validation","validationCode":"function checkLibFormats(libOptions) {\n  if (!libOptions) return null;\n  const multi = typeof libOptions.entry === 'object' && libOptions.entry && Object.keys(libOptions.entry).length > 1;\n  const formats = libOptions.formats || (multi ? ['es', 'cjs'] : ['es', 'umd']);\n  if (multi && (formats.includes('umd') || formats.includes('iife'))) {\n    return 'Multiple entries cannot use umd/iife formats';\n  }\n  return null;\n}","typeGuard":"function libSupportsUmdIife(libOptions) {\n  const multi = typeof libOptions?.entry === 'object' && Object.keys(libOptions.entry || {}).length <= 1;\n  return multi;\n}","tryCatchPattern":null,"preventionTips":["Reserve umd/iife for single-entry library builds.","Switch multi-entry libs to ['es', 'cjs']."],"tags":["build","library","umd","iife","config"],"backgroundTag":null,"analyzedSha":"b4d66fee14d970f45b8a6f3d7d6aee73ca9b88ab","analyzedAt":"2026-08-11T11:49:19.515Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}