update
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
node_modules
|
||||
|
||||
dist
|
||||
8
.npmrc
Normal file
8
.npmrc
Normal file
@@ -0,0 +1,8 @@
|
||||
# Electron 镜像(淘宝)
|
||||
electron_mirror=https://npmmirror.com/mirrors/electron/
|
||||
|
||||
# Electron Builder 二进制镜像(如果用了 electron-builder)
|
||||
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
|
||||
|
||||
# 可选:设置 node-gyp 等构建工具镜像
|
||||
registry=https://registry.npmmirror.com
|
||||
20
bun.config.ts
Normal file
20
bun.config.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
// @ts-check
|
||||
import { resolvePath } from '@kevisual/use-config';
|
||||
import { execSync } from 'node:child_process';
|
||||
|
||||
const entry = 'src/index.ts';
|
||||
const naming = 'app';
|
||||
const external = ['electron'];
|
||||
|
||||
await Bun.build({
|
||||
target: 'node',
|
||||
format: 'esm',
|
||||
entrypoints: [resolvePath(entry, { meta: import.meta })],
|
||||
outdir: resolvePath('./dist', { meta: import.meta }),
|
||||
naming: {
|
||||
entry: `${naming}.js`,
|
||||
},
|
||||
sourcemap: 'external',
|
||||
external,
|
||||
env: 'KEVISUAL_*',
|
||||
});
|
||||
10
index.html
Normal file
10
index.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Electron Template</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello Electron!</h1>
|
||||
</body>
|
||||
</html>
|
||||
30
package.json
Normal file
30
package.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"name": "electron-template",
|
||||
"version": "0.0.1",
|
||||
"description": "",
|
||||
"main": "dist/app.js",
|
||||
"scripts": {
|
||||
"build": "bun bun.config.ts",
|
||||
"dev": " electron .",
|
||||
"start": "pnpm build && electron .",
|
||||
"build:mac": "electron-builder --mac --universal",
|
||||
"build:win": "electron-builder --win",
|
||||
"build:linux": "electron-builder --linux"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "abearxiong <xiongxiao@xiongxiao.me> (https://www.xiongxiao.me)",
|
||||
"license": "MIT",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@kevisual/use-config": "^1.0.19",
|
||||
"@types/bun": "^1.3.0",
|
||||
"@types/node": "^22.15.21",
|
||||
"bun": "^1.3.0",
|
||||
"cross-env": "^10.1.0",
|
||||
"electron": "38.2.2",
|
||||
"electron-builder": "^26.0.12",
|
||||
"electron-builder-squirrel-windows": "^26.0.12",
|
||||
"electron-log": "^5.4.0",
|
||||
"typescript": "^5.8.3"
|
||||
}
|
||||
}
|
||||
2965
pnpm-lock.yaml
generated
Normal file
2965
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
4
pnpm-workspace.yaml
Normal file
4
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
onlyBuiltDependencies:
|
||||
- bun
|
||||
- electron
|
||||
- electron-winstaller
|
||||
59
src/index.ts
Normal file
59
src/index.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { WebContentsView } from 'electron';
|
||||
|
||||
import { app, BrowserWindow } from 'electron';
|
||||
import path from 'path';
|
||||
|
||||
app.commandLine.appendSwitch('--ignore-certificate-errors');
|
||||
app.commandLine.appendSwitch('--ignore-ssl-errors');
|
||||
app.commandLine.appendSwitch('--ignore-certificate-errors-spki-list');
|
||||
|
||||
const createBase = () => {
|
||||
var win = new BrowserWindow({
|
||||
width: 800, height: 400,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
webSecurity: false,
|
||||
contextIsolation: false,
|
||||
// 添加允许运行不安全内容
|
||||
allowRunningInsecureContent: true,
|
||||
},
|
||||
});
|
||||
var view1 = new WebContentsView();
|
||||
win.contentView.addChildView(view1);
|
||||
view1.webContents.loadURL('https://www.kevisual.cn');
|
||||
view1.setBounds({ x: 0, y: 0, width: 400, height: 400 });
|
||||
var view2 = new WebContentsView();
|
||||
win.contentView.addChildView(view2);
|
||||
view2.webContents.loadURL('https://www.xiongxiao.me');
|
||||
view2.setBounds({ x: 400, y: 0, width: 400, height: 400 });
|
||||
};
|
||||
const createWindow = () => {
|
||||
const mainWindow = new BrowserWindow({
|
||||
width: 800,
|
||||
height: 600,
|
||||
webPreferences: {
|
||||
nodeIntegration: true,
|
||||
webSecurity: false,
|
||||
contextIsolation: false,
|
||||
},
|
||||
});
|
||||
|
||||
mainWindow.loadFile('index.html');
|
||||
};
|
||||
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
|
||||
// 开发环境下忽略证书错误
|
||||
event.preventDefault();
|
||||
callback(true);
|
||||
});
|
||||
app.whenReady().then(() => {
|
||||
// createWindow();
|
||||
createBase();
|
||||
|
||||
app.on('activate', () => {
|
||||
if (BrowserWindow.getAllWindows().length === 0) createWindow();
|
||||
});
|
||||
});
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
if (process.platform !== 'darwin') app.quit();
|
||||
});
|
||||
Reference in New Issue
Block a user