@@ -86,8 +86,29 @@ export default defineConfig(({ command, mode }) => {
8686 deleteOriginFile : true ,
8787 filter : / \. ( j s | c s s | j s o n | s v g | t x t | x m l | w a s m | g l b ) $ / i,
8888 } ) ,
89+ // Fix Draco imports in dev server
90+ {
91+ name : 'draco-dev-fix' ,
92+ apply : 'serve' ,
93+ configureServer ( server ) {
94+ server . middlewares . use ( ( req , res , next ) => {
95+ if ( req . url ?. includes ( '/node_modules/three/examples/jsm/libs/draco/' ) ) {
96+ const fs = require ( 'fs' )
97+ const filePath = path . join ( __dirname , req . url )
98+ if ( fs . existsSync ( filePath ) ) {
99+ const ext = path . extname ( req . url )
100+ if ( ext === '.wasm' ) res . setHeader ( 'Content-Type' , 'application/wasm' )
101+ else if ( ext === '.js' ) res . setHeader ( 'Content-Type' , 'application/javascript' )
102+ res . end ( fs . readFileSync ( filePath ) )
103+ return
104+ }
105+ }
106+ next ( )
107+ } )
108+ }
109+ }
89110 ] ,
90- assetsInclude : [ '**/*.gif' , '**/*.glb' , '**/*.png' , '**/*.svg' ] ,
111+ assetsInclude : [ '**/*.gif' , '**/*.glb' , '**/*.png' , '**/*.svg' , '**/assets/ArduPilot-Parameter-Repository**.json' , '**/*.msg' , "**/three/examples/jsm/libs/draco/*" ] ,
91112 resolve : {
92113 extensions : [ '.mjs' , '.js' , '.ts' , '.jsx' , '.tsx' , '.json' , '.vue' ] ,
93114 alias : {
@@ -100,6 +121,22 @@ export default defineConfig(({ command, mode }) => {
100121 input : {
101122 main : path . resolve ( __dirname , 'index.html' ) ,
102123 } ,
124+ output : {
125+ assetFileNames : ( assetInfo ) => {
126+ // List of file patterns to excluded from hashing
127+ const noHashPatterns = [
128+ / A r d u P i l o t - P a r a m e t e r - R e p o s i t o r y .* \. j s o n $ / ,
129+ / t h r e e \/ e x a m p l e s \/ j s m \/ l i b s \/ d r a c o \/ /
130+ ] ;
131+
132+ if ( assetInfo . name ) {
133+ if ( noHashPatterns . some ( pattern => pattern . test ( assetInfo . name ) ) ) {
134+ return `assets/[name][extname]` ;
135+ }
136+ }
137+ return `assets/[name]-[hash][extname]` ;
138+ }
139+ }
103140 } ,
104141 } ,
105142 define : {
@@ -108,6 +145,9 @@ export default defineConfig(({ command, mode }) => {
108145 } ,
109146 server : {
110147 port : 8080 ,
148+ fs : {
149+ allow : [ '..' , './node_modules' ]
150+ } ,
111151 proxy : {
112152 '^/status' : {
113153 target : SERVER_ADDRESS ,
0 commit comments