vite-plugin-cesium-build
Version:
CesiumJS support for Vite
49 lines (45 loc) • 1.81 kB
JavaScript
;
const pathe = require('pathe');
const vitePluginExternals = require('vite-plugin-externals');
const vitePluginStaticCopy = require('vite-plugin-static-copy');
const setBaseUrl = require('./shared/vite-plugin-cesium-build.CBlexsze.cjs');
const index = (pluginOptions) => {
const options = setBaseUrl.resolveOptions(pluginOptions, "./node_modules/cesium/Build/Cesium");
return [
// externals
...options.iife ? [vitePluginExternals.viteExternalsPlugin({ cesium: "Cesium" })] : [],
// copy
...vitePluginStaticCopy.viteStaticCopy({
targets: [
// resources
...["Assets", "ThirdParty", "Widgets", "Workers"].map((item) => ({
src: pathe.join(options.from, item, "*"),
dest: pathe.join(options.to, item, "/")
})),
// Cesium.js
...options.iife ? [{
src: pathe.join(options.from, "Cesium.js"),
dest: pathe.join(options.to, "/")
}] : [],
// css
...options.css ? [{
src: pathe.join(options.from, "/Widgets/widgets.css"),
dest: pathe.join(options.to, "/Widgets/")
}] : []
],
silent: true
}),
// imports
...options.iife ? [
setBaseUrl.imports([(base) => pathe.join(base, options.from.replace(/\/Cesium\/?$/, ""), "CesiumUnminified/Cesium.js")], "serve"),
setBaseUrl.imports([(base) => pathe.join(base, options.to, "Cesium.js")], "build")
] : [],
...options.css ? [
setBaseUrl.imports([(base) => pathe.join(base, options.from, "Widgets/widgets.css")], "serve"),
setBaseUrl.imports([(base) => pathe.join(base, options.to, "Widgets/widgets.css")], "build")
] : [],
// base url
...options.customCesiumBaseUrl !== true ? [setBaseUrl.setBaseUrl(options)] : []
];
};
module.exports = index;