UNPKG

vite-plugin-xgis-cesium

Version:
1 lines 4.31 kB
"use strict";var e,t=Object.create,i=Object.defineProperty,s=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,a=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,r=(e,t,a,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of u(t))l.call(e,o)||o===a||i(e,o,{get:()=>t[o],enumerable:!(r=s(t,o))||r.enumerable});return e},o=(e,s,u)=>(u=null!=e?t(a(e)):{},r(!s&&e&&e.__esModule?u:i(u,"default",{value:e,enumerable:!0}),e)),n={};((e,t)=>{for(var s in t)i(e,s,{get:t[s],enumerable:!0})})(n,{cesiumPlugin:()=>j,default:()=>g}),module.exports=(e=n,r(i({},"__esModule",{value:!0}),e));var d=o(require("fs-extra")),c=o(require("path")),f=o(require("rollup-plugin-external-globals")),m=o(require("serve-static")),p=require("vite");function j(e={}){let t="cesium";const{rebuildCesium:i=!1,devMinifyCesium:s=!1,cesiumBuildRootPath:u=`node_modules/${t}/Build`,cesiumBuildPath:a=`${u}/Cesium/`,useCDN:l=null}=e;let r=Object.assign({cesium:null},l),o=`${t}/`,n="dist",j="/",g=!1;return{name:"vite-plugin-cesium",config(e,{command:s}){var u;g="build"===s,e.base&&(j=e.base,""===j&&(j="./")),(null==(u=e.build)?void 0:u.outDir)&&(n=e.build.outDir),o=c.default.posix.join(j,o);const a={};if(g)if(i)a.build={assetsInlineLimit:0,chunkSizeWarningLimit:5e3,rollupOptions:{output:{intro:`window.CESIUM_BASE_URL = "${o}";`}}};else{let e=[t],i=[(0,f.default)({cesium:"Cesium"})];a.build={rollupOptions:{external:e,plugins:i}}}else a.define={CESIUM_BASE_URL:JSON.stringify(o)};return a},configureServer({middlewares:e}){const t=c.default.join(u,s?"Cesium":"CesiumUnminified");e.use(c.default.posix.join("/",o),(0,m.default)(t))},async closeBundle(){if(g&&!l)try{await d.default.copy(c.default.join(a,"Assets"),c.default.join(n,`${t}/Assets`)),await d.default.copy(c.default.join(a,"ThirdParty"),c.default.join(n,`${t}/ThirdParty`)),await d.default.copy(c.default.join(a,"Workers"),c.default.join(n,`${t}/Workers`)),await d.default.copy(c.default.join(a,"Widgets"),c.default.join(n,`${t}/Widgets`)),i||await d.default.copy(c.default.join(a,"Cesium.js"),c.default.join(n,`${t}/Cesium.js`))}catch(e){console.error("copy failed",e)}},transformIndexHtml(){const e=[];if(l){let i=r.cesium?`@${r.cesium}`:"";e.push({tag:"link",attrs:{rel:"stylesheet",href:`https://unpkg.com/${t}${i}/Build/Cesium/Widgets/widgets.css`}},{tag:"script",children:`window['CESIUM_BASE_URL'] = 'https://unpkg.com/${t}${i}/Build/Cesium'`},{tag:"script",attrs:{src:`https://unpkg.com/${t}${i}/Build/Cesium/Cesium.js`}})}else e.push({tag:"link",attrs:{rel:"stylesheet",href:(0,p.normalizePath)(c.default.join(o,"Widgets/widgets.css"))}}),g&&!i&&e.push({tag:"script",attrs:{src:(0,p.normalizePath)(c.default.join(j,`${t}/Cesium.js`))}});return e}}}function g(e={}){let t="xgis-cesium";const{rebuildCesium:i=!1,devMinifyCesium:s=!1,cesiumBuildRootPath:u=`node_modules/${t}/dist`,cesiumBuildPath:a=`${u}/resources/`,useCDN:l=null}=e;Object.assign({cesium:null},l);let r=`${t}/`,o="dist",n="/",f=!1;return{name:"vite-plugin-xgis-cesium",async config(e,{command:t}){var i;f="build"===t,e.base&&(n=e.base,""===n&&(n="./")),(null==(i=e.build)?void 0:i.outDir)&&(o=e.build.outDir),r=c.default.posix.join(n,r);const s={};if(f){const e=c.default.join("public","assets");await async function(e,t,i){const s=(await d.default.readdir(e)).filter(e=>new RegExp(i).test(e));await Promise.all(s.map(i=>d.default.copy(`${e}/${i}`,`${t}/${i}`,{overwrite:!0,errorOnExist:!1,preserveTimestamps:!0})))}(c.default.join(u,"assets"),e,"worker-[^/]+.js$")}else s.define={CESIUM_BASE_URL:JSON.stringify(r)};return s},configureServer({middlewares:e}){const t=c.default.join(u,"resources");e.use(c.default.posix.join("/",r),(0,m.default)(t));const i=c.default.join(u,"assets");e.use(c.default.posix.join("public/","assets"),(0,m.default)(i))},async closeBundle(){if(f&&!l)try{await d.default.copy(c.default.join(a,"Assets"),c.default.join(o,`${t}/Assets`)),await d.default.copy(c.default.join(a,"ThirdParty"),c.default.join(o,`${t}/ThirdParty`)),await d.default.copy(c.default.join(a,"Workers"),c.default.join(o,`${t}/Workers`)),await d.default.copy(c.default.join(u,"assets/data"),c.default.join(o,"assets/data"))}catch(e){console.error("copy failed",e)}},transformIndexHtml(){const e=[];return e.push({tag:"script",children:`window['CESIUM_BASE_URL'] = '${r}'`}),e}}}