Merge pull request #55 from electron-vite/fix/220806-#52
fix(Vite@.3x): Invalid URL #52
This commit is contained in:
commit
ae877666f4
|
@ -1,18 +1,22 @@
|
||||||
import { rmSync } from 'fs'
|
import { rmSync } from 'fs'
|
||||||
import { join } from 'path'
|
import path from 'path'
|
||||||
import { defineConfig, UserConfig, Plugin } from 'vite'
|
import {
|
||||||
|
type Plugin,
|
||||||
|
type UserConfig,
|
||||||
|
defineConfig,
|
||||||
|
} from 'vite'
|
||||||
import react from '@vitejs/plugin-react'
|
import react from '@vitejs/plugin-react'
|
||||||
import electron from 'vite-plugin-electron'
|
import electron from 'vite-plugin-electron'
|
||||||
import pkg from './package.json'
|
import pkg from './package.json'
|
||||||
|
|
||||||
rmSync(join(__dirname, 'dist'), { recursive: true, force: true }) // v14.14.0
|
rmSync(path.join(__dirname, 'dist'), { recursive: true, force: true }) // v14.14.0
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
resolve: {
|
resolve: {
|
||||||
alias: {
|
alias: {
|
||||||
'@': join(__dirname, 'src'),
|
'@': path.join(__dirname, 'src'),
|
||||||
'styles': join(__dirname, 'src/assets/styles'),
|
'styles': path.join(__dirname, 'src/assets/styles'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
|
@ -29,7 +33,7 @@ export default defineConfig({
|
||||||
preload: {
|
preload: {
|
||||||
input: {
|
input: {
|
||||||
// You can configure multiple preload scripts here
|
// You can configure multiple preload scripts here
|
||||||
index: join(__dirname, 'electron/preload/index.ts'),
|
index: path.join(__dirname, 'electron/preload/index.ts'),
|
||||||
},
|
},
|
||||||
vite: {
|
vite: {
|
||||||
build: {
|
build: {
|
||||||
|
@ -42,11 +46,15 @@ export default defineConfig({
|
||||||
// Enables use of Node.js API in the Electron-Renderer
|
// Enables use of Node.js API in the Electron-Renderer
|
||||||
renderer: {},
|
renderer: {},
|
||||||
}),
|
}),
|
||||||
|
renderBuiltUrl(),
|
||||||
],
|
],
|
||||||
server: {
|
server: {
|
||||||
host: pkg.env.VITE_DEV_SERVER_HOST,
|
host: pkg.env.VITE_DEV_SERVER_HOST,
|
||||||
port: pkg.env.VITE_DEV_SERVER_PORT,
|
port: pkg.env.VITE_DEV_SERVER_PORT,
|
||||||
},
|
},
|
||||||
|
build: {
|
||||||
|
minify: false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
function withDebug(config: UserConfig): UserConfig {
|
function withDebug(config: UserConfig): UserConfig {
|
||||||
|
@ -63,3 +71,59 @@ function withDebug(config: UserConfig): UserConfig {
|
||||||
}
|
}
|
||||||
return config
|
return config
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Only worked Vite@3.x #52
|
||||||
|
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…
Reference in New Issue