mirror of
https://github.com/electron-vite/electron-vite-vue
synced 2025-01-19 20:07:06 +08:00
72 lines
2.0 KiB
TypeScript
72 lines
2.0 KiB
TypeScript
import { join } from 'path'
|
|
import { RollupOptions } from 'rollup'
|
|
import { nodeResolve } from '@rollup/plugin-node-resolve'
|
|
import commonjs from '@rollup/plugin-commonjs'
|
|
import esbuild from 'rollup-plugin-esbuild'
|
|
import alias from '@rollup/plugin-alias'
|
|
import json from '@rollup/plugin-json'
|
|
import copy from 'rollup-plugin-copy'
|
|
|
|
export default (env = 'production') => {
|
|
const options: RollupOptions = {
|
|
input: join(__dirname, '../src/main/index.ts'),
|
|
output: {
|
|
file: join(__dirname, '../dist/main/_.js'),
|
|
format: 'cjs',
|
|
name: 'ElectronMainBundle',
|
|
sourcemap: true,
|
|
},
|
|
plugins: [
|
|
nodeResolve({ preferBuiltins: true, browser: true }), // 消除碰到 node.js 模块时⚠警告
|
|
commonjs(),
|
|
json(),
|
|
esbuild({
|
|
// All options are optional
|
|
include: /\.[jt]sx?$/, // default, inferred from `loaders` option
|
|
exclude: /node_modules/, // default
|
|
// watch: process.argv.includes('--watch'), // rollup 中有配置
|
|
sourceMap: false, // default
|
|
minify: process.env.NODE_ENV === 'production',
|
|
target: 'es2017', // default, or 'es20XX', 'esnext'
|
|
jsxFactory: 'React.createElement',
|
|
jsxFragment: 'React.Fragment',
|
|
// Like @rollup/plugin-replace
|
|
define: {
|
|
__VERSION__: '"x.y.z"'
|
|
},
|
|
// Add extra loaders
|
|
loaders: {
|
|
// Add .json files support
|
|
// require @rollup/plugin-commonjs
|
|
'.json': 'json',
|
|
// Enable JSX in .js files too
|
|
'.js': 'jsx'
|
|
},
|
|
}),
|
|
alias({
|
|
entries: [
|
|
{ find: '@main', replacement: join(__dirname, '../src/main'), },
|
|
]
|
|
}),
|
|
copy({
|
|
targets: [{ src: join(__dirname, '../src/preload'), dest: join(__dirname, '../dist') }],
|
|
})
|
|
],
|
|
external: [
|
|
'crypto',
|
|
'assert',
|
|
'fs',
|
|
'util',
|
|
'os',
|
|
'events',
|
|
'child_process',
|
|
'http',
|
|
'https',
|
|
'path',
|
|
'electron',
|
|
],
|
|
}
|
|
|
|
return options
|
|
}
|