mirror of
https://github.com/electron-vite/electron-vite-vue
synced 2025-02-08 01:10:10 +08:00
Merge pull request #224 from electron-vite/fix/220806-#212
fix(Vite@.3x): Invalid URL #212
This commit is contained in:
commit
05a9c08770
@ -1,6 +1,10 @@
|
|||||||
import { rmSync } from 'fs'
|
import { rmSync } from 'fs'
|
||||||
import { join } from 'path'
|
import path from 'path'
|
||||||
import { defineConfig, Plugin, UserConfig } from 'vite'
|
import {
|
||||||
|
type Plugin,
|
||||||
|
type UserConfig,
|
||||||
|
defineConfig,
|
||||||
|
} from 'vite'
|
||||||
import vue from '@vitejs/plugin-vue'
|
import vue from '@vitejs/plugin-vue'
|
||||||
import electron from 'vite-plugin-electron'
|
import electron from 'vite-plugin-electron'
|
||||||
import pkg from './package.json'
|
import pkg from './package.json'
|
||||||
@ -23,7 +27,7 @@ export default defineConfig({
|
|||||||
preload: {
|
preload: {
|
||||||
input: {
|
input: {
|
||||||
// You can configure multiple preload here
|
// You can configure multiple preload here
|
||||||
index: join(__dirname, 'electron/preload/index.ts'),
|
index: path.join(__dirname, 'electron/preload/index.ts'),
|
||||||
},
|
},
|
||||||
vite: {
|
vite: {
|
||||||
build: {
|
build: {
|
||||||
@ -36,6 +40,7 @@ export default defineConfig({
|
|||||||
// Enables use of Node.js API in the Renderer-process
|
// Enables use of Node.js API in the Renderer-process
|
||||||
renderer: {},
|
renderer: {},
|
||||||
}),
|
}),
|
||||||
|
renderBuiltUrl(),
|
||||||
],
|
],
|
||||||
server: {
|
server: {
|
||||||
host: pkg.env.VITE_DEV_SERVER_HOST,
|
host: pkg.env.VITE_DEV_SERVER_HOST,
|
||||||
@ -58,3 +63,59 @@ function withDebug(config: UserConfig): UserConfig {
|
|||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only worked Vite@3.x #212
|
||||||
|
function renderBuiltUrl(): Plugin {
|
||||||
|
// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/constants.ts#L84-L124
|
||||||
|
const KNOWN_ASSET_TYPES = [
|
||||||
|
// images
|
||||||
|
'png',
|
||||||
|
'jpe?g',
|
||||||
|
'jfif',
|
||||||
|
'pjpeg',
|
||||||
|
'pjp',
|
||||||
|
'gif',
|
||||||
|
'svg',
|
||||||
|
'ico',
|
||||||
|
'webp',
|
||||||
|
'avif',
|
||||||
|
|
||||||
|
// media
|
||||||
|
'mp4',
|
||||||
|
'webm',
|
||||||
|
'ogg',
|
||||||
|
'mp3',
|
||||||
|
'wav',
|
||||||
|
'flac',
|
||||||
|
'aac',
|
||||||
|
|
||||||
|
// fonts
|
||||||
|
'woff2?',
|
||||||
|
'eot',
|
||||||
|
'ttf',
|
||||||
|
'otf',
|
||||||
|
|
||||||
|
// other
|
||||||
|
'webmanifest',
|
||||||
|
'pdf',
|
||||||
|
'txt'
|
||||||
|
]
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: 'render-built-url',
|
||||||
|
config(config) {
|
||||||
|
config.experimental = {
|
||||||
|
renderBuiltUrl(filename, type) {
|
||||||
|
if (
|
||||||
|
KNOWN_ASSET_TYPES.includes(path.extname(filename).slice(1)) &&
|
||||||
|
type.hostType === 'js'
|
||||||
|
) {
|
||||||
|
// Avoid Vite relative-path assets handling
|
||||||
|
// https://github.com/vitejs/vite/blob/89dd31cfe228caee358f4032b31fdf943599c842/packages/vite/src/node/build.ts#L838-L875
|
||||||
|
return { runtime: JSON.stringify(filename) }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user