chore: 升级 vite@2.0

This commit is contained in:
草鞋没号
2021-02-17 22:27:40 +08:00
parent 0ea62ef46a
commit 33114d814d
14 changed files with 940 additions and 1420 deletions

View File

@@ -1,68 +1,71 @@
/**
* 参考链接: https://github.com/vitejs/vite/blob/master/src/node/config.ts
*/
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { join, sep } from 'path'
import { UserConfig } from 'vite'
import dotenv from 'dotenv'
dotenv.config({ path: join(__dirname, '.env') })
const root = join(__dirname, 'src/render')
const config: UserConfig = {
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
root,
port: +process.env.PORT,
base: './',
outDir: join(__dirname, 'dist/render'),
alias: {
// 别名必须以 / 开头、结尾
// '/@/': root, -- vite 内部在用,这里不能用了
// '/root/': __dirname, -- vite 内部在用,这里不能用了
'/assets/': join(__dirname, 'src/render/assets'),
'/components/': join(__dirname, 'src/render/components'),
'/lib/': join(__dirname, 'src/render/lib'),
'/utils/': join(__dirname, 'src/render/utils'),
'/views/': join(__dirname, 'src/render/views'),
// base: './',
server: {
port: +process.env.PORT,
},
resolve: {
alias: {
'@root': __dirname,
'@assets': join(__dirname, 'src/render/assets'),
'@components': join(__dirname, 'src/render/components'),
'@lib': join(__dirname, 'src/render/lib'),
'@utils': join(__dirname, 'src/render/utils'),
'@views': join(__dirname, 'src/render/views'),
},
},
optimizeDeps: {
// 这里不加也没事,用 require 的形式就能避开 import 被编译成 /@modules/fs?import
// allowNodeBuiltins: ['electron-is-dev', 'electron-store', 'electron']
},
rollupInputOptions: {
external: [
'crypto',
'assert',
'fs',
'util',
'os',
'events',
'child_process',
'http',
'https',
'path',
'electron',
],
plugins: [
{
name: '@rollup/plugin-cjs2esm',
transform(code, filename) {
if (filename.includes(`${sep}node_modules${sep}`)) {
build: {
outDir: join(__dirname, 'dist/render'),
rollupOptions: {
output: {
// format: 'commonjs',
},
external: [
'crypto',
'assert',
'fs',
'util',
'os',
'events',
'child_process',
'http',
'https',
'path',
'electron',
],
plugins: [
{
name: '@rollup/plugin-cjs2esm',
transform(code, filename) {
if (filename.includes(`${sep}node_modules${sep}`)) {
return code
}
const cjsRegexp = /(const|let|var)[\n\s]+(\w+)[\n\s]*=[\n\s]*require\(["|'](.+)["|']\)/g
const res = code.match(cjsRegexp)
if (res) {
// const Store = require('electron-store') -> import Store from 'electron-store'
code = code.replace(cjsRegexp, `import $2 from '$3'`)
}
return code
}
const cjsRegexp = /(const|let|var)[\n\s]+(\w+)[\n\s]*=[\n\s]*require\(["|'](.+)["|']\)/g
const res = code.match(cjsRegexp)
if (res) {
// const Store = require('electron-store') -> import Store from 'electron-store'
code = code.replace(cjsRegexp, `import $2 from '$3'`)
}
return code
},
}
],
},
}
],
},
},
rollupOutputOptions: {
format: 'commonjs',
},
}
})
export default config