vite-plugin-mars3d
Version:
Mars3D 在 Vite 平台的插件
128 lines (127 loc) • 3.48 kB
JavaScript
import { viteStaticCopy as d } from "vite-plugin-static-copy";
import { viteExternalsPlugin as n } from "vite-plugin-externals";
const l = (a) => {
let e;
return {
name: "vite-plugin-mars3d:insertToHtml",
// apply: 'build',
config() {
const { cesiumPackageName: s = "mars3d-cesium", mars3dPackageName: t = "mars3d" } = a;
return {
build: {
assetsInlineLimit: 0,
chunkSizeWarningLimit: 4e3
},
optimizeDeps: {
include: [t, s]
}
};
},
configResolved(s) {
e = s.base;
},
transformIndexHtml() {
var r;
const s = [], t = `${e}${a.cesiumRunPath}/`;
if (s.push(
{
tag: "link",
attrs: {
rel: "stylesheet",
href: `${t}Widgets/widgets.css`
}
},
{
tag: "script",
children: `window['CESIUM_BASE_URL'] = '${t}'`
},
{
tag: "script",
attrs: { src: `${t}Cesium.js` }
}
), a.useStatic) {
const u = `${e}${a.mars3dRunPath}/`;
s.push(
{
tag: "script",
attrs: { src: `${u}turf.min.js` }
},
{
tag: "link",
attrs: {
rel: "stylesheet",
href: `${u}mars3d.css`
}
},
{
tag: "script",
attrs: { src: `${u}mars3d.js` }
}
), (r = a.mars3dPluginsPackageName) == null || r.forEach((c) => {
s.push(
{
tag: "script",
attrs: { src: `${u}/plugins/${c}.js` }
}
);
});
}
return s;
}
};
}, g = (a) => {
const {
mars3dPackageName: e = "mars3d",
mars3dPluginsPackageName: s = [],
cesiumPackageName: t = "mars3d-cesium",
useExternal: r = !1,
useStatic: u = !1,
mars3dRunPath: c = "assets/mars3d",
cesiumRunPath: i = "assets/mars3d-cesium"
} = a ?? {};
return {
cesiumPackageName: t,
cesiumRunPath: i,
useStatic: u,
useExternal: r,
mars3dPackageName: e,
mars3dPluginsPackageName: s,
mars3dRunPath: c
};
}, o = (a) => {
var r;
let e = `node_modules/${a.cesiumPackageName}/Build/Cesium/`;
const s = `${a.cesiumRunPath}/`;
let t = [
{ src: `${e}ThirdParty`, dest: s },
{ src: `${e}Workers`, dest: s },
{ src: `${e}Assets`, dest: s },
{ src: `${e}Widgets`, dest: s },
{ src: `${e}Cesium.js`, dest: s }
];
if (a.useStatic) {
const u = `node_modules/${a.mars3dPackageName}/`, c = `${a.mars3dRunPath}/`;
t.push({ src: `${u}img`, dest: c }), t.push({ src: `${u}mars3d.css`, dest: c }), t.push({ src: `${u}mars3d.js`, dest: c }), (r = a.mars3dPluginsPackageName) == null || r.forEach((m) => {
t.push({ src: `node_modules/${m}/${m}.js`, dest: `${c}/plugins/${m}.js` });
}), t.push({ src: "node_modules/@turf/turf/turf.min.js", dest: c });
}
return d({ targets: t, silent: !0 });
};
function h(a) {
var t;
const e = g(a);
let s = {};
return s[e.cesiumPackageName] = "Cesium", (e.useStatic || e.useExternal) && (s[e.mars3dPackageName] = e.mars3dPackageName, (t = e.mars3dPluginsPackageName) == null || t.forEach((r) => {
s[r] = r;
}), s["@turf/turf"] = "turf"), e.useExternal ? [
n(s, { useWindow: !0 })
] : [
n(s, { useWindow: !0 }),
...o(e),
l(e)
];
}
export {
h as default,
h as mars3dPlugin
};