forked from sheetjs/docs.sheetjs.com
		
	
		
			
	
	
		
			30 lines
		
	
	
		
			931 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			931 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import { defineConfig } from 'vite'
							 | 
						||
| 
								 | 
							
								import vue from '@vitejs/plugin-vue'
							 | 
						||
| 
								 | 
							
								import { readFileSync } from 'fs';
							 | 
						||
| 
								 | 
							
								import { read, utils } from 'xlsx';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export default defineConfig({
							 | 
						||
| 
								 | 
							
								  assetsInclude: ['**/*.xlsx'], // xlsx file should be treated as assets
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  plugins: [
							 | 
						||
| 
								 | 
							
								    vue(),
							 | 
						||
| 
								 | 
							
								    { // this plugin handles ?sheetjs tags
							 | 
						||
| 
								 | 
							
								      name: "vite-sheet",
							 | 
						||
| 
								 | 
							
								      transform(code, id) {
							 | 
						||
| 
								 | 
							
								        if(!id.match(/\?sheetjs$/)) return;
							 | 
						||
| 
								 | 
							
								        var wb = read(readFileSync(id.replace(/\?sheetjs$/, "")));
							 | 
						||
| 
								 | 
							
								        var data = utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
							 | 
						||
| 
								 | 
							
								        return `export default JSON.parse('${JSON.stringify(data)}')`;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    { // this plugin handles ?b64 tags
							 | 
						||
| 
								 | 
							
								      name: "vite-b64-plugin",
							 | 
						||
| 
								 | 
							
								      transform(code, id) {
							 | 
						||
| 
								 | 
							
								        if(!id.match(/\?b64$/)) return;
							 | 
						||
| 
								 | 
							
								        var path = id.replace(/\?b64/, "");
							 | 
						||
| 
								 | 
							
								        var data = readFileSync(path, "base64");
							 | 
						||
| 
								 | 
							
								        return `export default '${data}'`;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  ]
							 | 
						||
| 
								 | 
							
								});
							 |