{"id":22604,"library":"vite-plugin-cesium","title":"vite-plugin-cesium","description":"Vite plugin that simplifies integrating CesiumJS into Vite projects. Current stable version is 1.2.23, with active maintenance and frequent patches. It handles Cesium's static assets, worker files, and CSS, providing a seamless development experience. Key differentiators: no manual copy steps, configurable rebuildCesium option, and support for Cesium Ion SDK paths. Requires Cesium ^1.95.0 and Vite >=2.7.1.","status":"active","version":"1.2.23","language":"javascript","source_language":"en","source_url":"https://github.com/nshen/vite-plugin-cesium","tags":["javascript","vite","vite-plugin","cesium","typescript"],"install":[{"cmd":"npm install vite-plugin-cesium","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-cesium","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-cesium","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: core Cesium library required for functionality","package":"cesium","optional":false},{"reason":"Peer dependency: plugin for Vite build tool","package":"vite","optional":false}],"imports":[{"note":"ESM-only; CommonJS require will fail. Use named export in ts if needed: import cesium from 'vite-plugin-cesium'.","wrong":"const cesium = require('vite-plugin-cesium');","symbol":"default (cesium function)","correct":"import cesium from 'vite-plugin-cesium';"},{"note":"Cesium exports are named, not default. Use named imports for specific classes.","wrong":"import Viewer from 'cesium';","symbol":"Cesium.Viewer","correct":"import { Viewer } from 'cesium';"},{"note":"For accessing the entire Cesium namespace, use namespace import. CommonJS require may cause issues with static assets.","wrong":"const Cesium = require('cesium');","symbol":"Cesium (global object)","correct":"import * as Cesium from 'cesium';"}],"quickstart":{"code":"// vite.config.js\nimport { defineConfig } from 'vite';\nimport cesium from 'vite-plugin-cesium';\n\nexport default defineConfig({\n  plugins: [cesium()]\n});\n\n// src/index.js\nimport { Viewer } from 'cesium';\nimport './css/main.css';\n\nconst viewer = new Viewer('cesiumContainer');\n\n// index.html\n<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <script type=\"module\" src=\"/src/index.js\"></script>\n  </head>\n  <body>\n    <div id=\"cesiumContainer\"></div>\n  </body>\n</html>\n\n// package.json scripts\n\"scripts\": {\n  \"dev\": \"vite\",\n  \"build\": \"vite build\"\n}","lang":"javascript","description":"Minimal setup: add plugin to vite.config.js, import Viewer from cesium, create HTML container, and run dev/build."},"warnings":[{"fix":"Upgrade to vite-plugin-cesium >=1.2.21 and ensure cesium >=1.96.0.","message":"Cesium 1.96.0 introduced changes that broke earlier versions of this plugin; fixed in v1.2.21.","severity":"breaking","affected_versions":"<1.2.21"},{"fix":"Update to >=1.2.16 or manually workaround path issues by using forward slashes.","message":"On Windows, loading widgets.css may fail due to path resolution; fixed in v1.2.16.","severity":"gotcha","affected_versions":"<1.2.16"},{"fix":"Use import syntax: import cesium from 'vite-plugin-cesium';","message":"The plugin is ESM-only; using require() will throw an error.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Upgrade to v1.2.21 or later.","message":"Cesium is not a function error from v1.2.20 was a bug fixed in that same version.","severity":"deprecated","affected_versions":"1.2.20"},{"fix":"Expect larger bundle size when rebuilding from source; adjust Vite's build.chunkSizeWarningLimit if needed.","message":"If using rebuildCesium: true, the build output may exceed default chunk size warnings; plugin sets chunkSizeWarningLimit to 5000.","severity":"gotcha","affected_versions":">=1.2.13"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Upgrade vite-plugin-cesium to >=1.2.21 and cesium to ^1.96.0","cause":"Cesium version incompatibility with plugin versions <=1.2.20","error":"Error: [vite-plugin-cesium] cesium is not a function"},{"fix":"Run 'npm install cesium' and use import { Viewer } from 'cesium'","cause":"Missing cesium dependency or incorrect import path","error":"Error: Cannot find module 'cesium' or its corresponding type declarations."},{"fix":"Use vite-plugin-cesium to automatically handle worker paths","cause":"Missing or misconfigured base path for worker files (common when not using plugin)","error":"Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of \"text/html\"."},{"fix":"Change to import * as Cesium from 'cesium' or import { Viewer } from 'cesium'","cause":"Using require() with ESM-only Cesium","error":"TypeError: Cannot read properties of undefined (reading 'default')"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}