init
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
package-lock.json
|
||||||
|
node_modules
|
||||||
|
.idea
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# 全局npm镜像
|
||||||
|
registry=https://registry.npmmirror.com
|
||||||
|
|
||||||
|
# electron 镜像
|
||||||
|
electron_mirror=https://npmmirror.com/mirrors/electron/
|
||||||
|
electron_builder_binaries_mirror=https://npmmirror.com/mirrors/electron-builder-binaries/
|
||||||
|
|
||||||
|
# node-sass 镜像
|
||||||
|
sass_binary_site=https://npmmirror.com/mirrors/node-sass/
|
||||||
|
|
||||||
|
# puppeteer 镜像
|
||||||
|
puppeteer_download_host=https://npmmirror.com/mirrors
|
||||||
|
|
||||||
|
# sharp 镜像
|
||||||
|
sharp_dist_base_url=https://npmmirror.com/mirrors/sharp-libvips/
|
||||||
|
|
||||||
|
# 禁止严格ssl
|
||||||
|
strict-ssl=false
|
||||||
+75
@@ -0,0 +1,75 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh-CN">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>实时计数器</title>
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Segoe UI', Arial, sans-serif;
|
||||||
|
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
|
||||||
|
min-height: 100vh;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
text-align: center;
|
||||||
|
padding: 40px;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 20px;
|
||||||
|
backdrop-filter: blur(10px);
|
||||||
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 28px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
color: #00d9ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.counter-display {
|
||||||
|
font-size: 72px;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #00ff88;
|
||||||
|
text-shadow: 0 0 20px rgba(0, 255, 136, 0.5);
|
||||||
|
margin: 20px 0;
|
||||||
|
font-variant-numeric: tabular-nums;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
margin-top: 30px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 5px 15px;
|
||||||
|
background: #00ff88;
|
||||||
|
color: #1a1a2e;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>实时计数器</h1>
|
||||||
|
<div class="counter-display" id="counter">0</div>
|
||||||
|
<div class="info">
|
||||||
|
<span class="status">运行中</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="renderer.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
const { app, BrowserWindow } = require('electron');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
let win;
|
||||||
|
|
||||||
|
function createWindow() {
|
||||||
|
win = new BrowserWindow({
|
||||||
|
width: 500,
|
||||||
|
height: 400,
|
||||||
|
webPreferences: {
|
||||||
|
nodeIntegration: false,
|
||||||
|
contextIsolation: true,
|
||||||
|
preload: path.join(__dirname, 'preload.js')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
win.loadFile('index.html');
|
||||||
|
// 打开开发者工具方便调试
|
||||||
|
// win.webContents.openDevTools();
|
||||||
|
}
|
||||||
|
|
||||||
|
app.whenReady().then(createWindow);
|
||||||
|
|
||||||
|
app.on('window-all-closed', () => {
|
||||||
|
if (process.platform !== 'darwin') {
|
||||||
|
app.quit();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
app.on('activate', () => {
|
||||||
|
if (BrowserWindow.getAllWindows().length === 0) {
|
||||||
|
createWindow();
|
||||||
|
}
|
||||||
|
});
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "electron-counter",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Electron app with live counter",
|
||||||
|
"main": "main.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "electron ."
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"electron": "^28.3.3"
|
||||||
|
},
|
||||||
|
"build": {
|
||||||
|
"appId": "com.example.electron-counter",
|
||||||
|
"win": {
|
||||||
|
"target": "nsis"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
const { contextBridge, ipcRenderer } = require('electron');
|
||||||
|
|
||||||
|
// 暴露安全的 API 给渲染进程
|
||||||
|
contextBridge.exposeInMainWorld('electronAPI', {
|
||||||
|
// 可扩展更多功能
|
||||||
|
platform: process.platform
|
||||||
|
});
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
// 死循环计数器,每秒增加并刷新 UI
|
||||||
|
let count = 0;
|
||||||
|
const counterElement = document.getElementById('counter');
|
||||||
|
|
||||||
|
function updateCounter() {
|
||||||
|
count++;
|
||||||
|
counterElement.textContent = count.toLocaleString();
|
||||||
|
|
||||||
|
// 立即安排下一次更新
|
||||||
|
setTimeout(updateCounter, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 启动计数器
|
||||||
|
updateCounter();
|
||||||
|
|
||||||
|
console.log('计数器已启动');
|
||||||
Reference in New Issue
Block a user