mirror of
https://github.com/yeicor-3d/yet-another-cad-viewer.git
synced 2025-12-19 14:14:13 +01:00
playground: most of the logic for both frontend and backend is implemented, some bugs remain
This commit is contained in:
@@ -1,12 +1,17 @@
|
||||
import {fileURLToPath, URL} from 'node:url'
|
||||
|
||||
import {defineConfig} from 'vite'
|
||||
// @ts-ignore
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
// @ts-ignore
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||||
import {name, version} from './package.json'
|
||||
import {execSync} from 'child_process'
|
||||
import {viteStaticCopy} from "vite-plugin-static-copy";
|
||||
import {dirname, join} from "path";
|
||||
import {version as pyodideVersion} from "pyodide";
|
||||
|
||||
let wantsSmallBuild = process.env.YACV_SMALL_BUILD == "true";
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
@@ -15,7 +20,7 @@ export default defineConfig({
|
||||
vue({
|
||||
template: {
|
||||
compilerOptions: {
|
||||
isCustomElement: tag => tag == 'model-viewer'
|
||||
isCustomElement: (tag: string) => tag == 'model-viewer'
|
||||
}
|
||||
}
|
||||
}),
|
||||
@@ -37,8 +42,17 @@ export default defineConfig({
|
||||
rollupOptions: {
|
||||
output: {
|
||||
experimentalMinChunkSize: 512000, // 512KB (avoid too many small chunks)
|
||||
}
|
||||
}
|
||||
},
|
||||
external: wantsSmallBuild ? [
|
||||
// Exclude some large optional dependencies if small build is requested (for embedding in python package)
|
||||
"pyodide",
|
||||
/.*\/pyodide-worker.*/,
|
||||
"monaco-editor",
|
||||
/monaco-editor\/.*/,
|
||||
"@guolao/vue-monaco-editor",
|
||||
/three\/examples\/jsm\/libs\/draco\/draco_(en|de)coder\.js/,
|
||||
] : [],
|
||||
},
|
||||
},
|
||||
worker: {
|
||||
format: 'es', // Use ES modules for workers (IIFE is not supported with code-splitting)
|
||||
@@ -48,6 +62,7 @@ export default defineConfig({
|
||||
__APP_VERSION__: JSON.stringify(version),
|
||||
__APP_GIT_SHA__: JSON.stringify(execSync('git rev-parse HEAD').toString().trim()),
|
||||
__APP_GIT_DIRTY__: JSON.stringify(execSync('git diff --quiet || echo dirty').toString().trim()),
|
||||
__YACV_SMALL_BUILD__: JSON.stringify(wantsSmallBuild),
|
||||
}
|
||||
})
|
||||
|
||||
@@ -59,12 +74,13 @@ function viteStaticCopyPyodide() {
|
||||
"!**/*.whl",
|
||||
"!**/node_modules",
|
||||
];
|
||||
// @ts-ignore
|
||||
const pyodideDir = dirname(fileURLToPath(import.meta.resolve("pyodide")));
|
||||
return viteStaticCopy({
|
||||
targets: [
|
||||
targets: wantsSmallBuild ? [] : [
|
||||
{
|
||||
src: [join(pyodideDir, "*")].concat(PYODIDE_EXCLUDE),
|
||||
dest: "assets",
|
||||
dest: "pyodide-v" + pyodideVersion, // It would be better to use hashed names instead of folder...
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user