mirror of
https://github.com/electron-vite/electron-vite-vue
synced 2025-01-20 04:16:36 +08:00
61 lines
1.8 KiB
TypeScript
61 lines
1.8 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 { builtins } from './utils'
|
||
|
|
||
|
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: env === 'production',
|
||
|
target: 'es2017', // default, or 'es20XX', 'esnext'
|
||
|
jsxFactory: 'React.createElement',
|
||
|
jsxFragment: 'React.Fragment',
|
||
|
// Like @rollup/plugin-replace
|
||
|
define: {
|
||
|
__VERSION__: '"x.y.z"'
|
||
|
},
|
||
|
tsconfig: 'tsconfig.json', // default
|
||
|
// 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'), },
|
||
|
]
|
||
|
}),
|
||
|
],
|
||
|
external: [
|
||
|
...builtins(),
|
||
|
'electron',
|
||
|
],
|
||
|
}
|
||
|
|
||
|
return options
|
||
|
}
|