Skip to content

Commit bd84b72

Browse files
committed
chore(pkg): bump electron version to 15.5.2
1 parent 6f50082 commit bd84b72

File tree

12 files changed

+58
-45
lines changed

12 files changed

+58
-45
lines changed

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"electron:build-win": "yarn run gen:version && vue-cli-service electron:build --win",
1313
"electron:build-linux": "export NODE_OPTIONS=--openssl-legacy-provider && yarn run gen:version && vue-cli-service electron:build --linux",
1414
"electron:build-mac": "export NODE_OPTIONS=--openssl-legacy-provider && yarn run gen:version && vue-cli-service electron:build --mac",
15-
"electron:serve": "yarn run gen:version && vue-cli-service electron:serve",
15+
"electron:serve": "export NODE_OPTIONS=\"--dns-result-order=ipv4first\" && yarn run gen:version && vue-cli-service electron:serve",
1616
"electron:serve:sql_debug": "export VUE_APP_SQL_DEBUG=true && yarn electron:serve",
1717
"postinstall": "electron-builder install-app-deps",
1818
"postuninstall": "electron-builder install-app-deps",
@@ -39,6 +39,7 @@
3939
"@ai-sdk/deepseek": "^0.1.12",
4040
"@ai-sdk/openai": "^1.1.14",
4141
"@ai-sdk/xai": "^1.1.12",
42+
"@electron/remote": "^2.1.2",
4243
"ai": "^4.1.46",
4344
"appdata-path": "^1.0.0",
4445
"avsc": "^5.7.7",
@@ -113,7 +114,7 @@
113114
"babel-plugin-component": "^1.1.1",
114115
"babel-plugin-prismjs": "^2.1.0",
115116
"chai": "^4.1.2",
116-
"electron": "^13.6.6",
117+
"electron": "^15.5.2",
117118
"electron-devtools-installer": "^3.2.0",
118119
"eslint": "6.5.1",
119120
"eslint-config-prettier": "^6.11.0",

src/background.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import useServices from '@/database/useServices'
1919
import { dialog } from 'electron'
2020
import ORMConfig from './database/database.config'
2121
import version from '@/version'
22+
import { initialize } from '@electron/remote/main'
2223

2324
declare const __static: string
2425

@@ -39,8 +40,6 @@ let menu: Menu | null
3940
// Scheme must be registered before the app is ready
4041
protocol.registerSchemesAsPrivileged([{ scheme: 'app', privileges: { secure: true, standard: true } }])
4142

42-
app.allowRendererProcessReuse = false
43-
4443
const { ConnectionInit, ConnectionDestroy } = useConnection()
4544

4645
function handleIpcMessages() {
@@ -170,7 +169,6 @@ async function createWindow() {
170169
webPreferences: {
171170
devTools: isDevelopment,
172171
webSecurity: false,
173-
enableRemoteModule: true,
174172
nodeIntegration: true,
175173
contextIsolation: false,
176174
},
@@ -179,6 +177,12 @@ async function createWindow() {
179177
icon: `${__static}/app.ico`,
180178
})
181179

180+
// 初始化 @electron/remote
181+
initialize()
182+
if (win) {
183+
require('@electron/remote/main').enable(win.webContents)
184+
}
185+
182186
// Restore window state
183187
restoreWindowState(win)
184188

src/components/ImportData.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
import { Component, Vue, Prop, Watch } from 'vue-property-decorator'
7979
import { Getter } from 'vuex-class'
8080
import fs from 'fs'
81-
import { remote } from 'electron'
81+
import { dialog } from '@electron/remote'
8282
import MyDialog from './MyDialog.vue'
8383
import YAML from 'js-yaml'
8484
import XMLConvert from 'xml-js'
@@ -148,7 +148,7 @@ export default class ImportData extends Vue {
148148
private getFileData() {
149149
let loading: ElLoadingComponent | undefined = undefined
150150
const extensionName = this.getExtensionName()
151-
remote.dialog
151+
dialog
152152
.showOpenDialog({
153153
properties: ['openFile'],
154154
filters: [{ name: '', extensions: [`${extensionName}`] }],

src/components/ImportScript.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
import { Component, Vue, Prop, Watch } from 'vue-property-decorator'
4949
import { Getter } from 'vuex-class'
5050
import fs from 'fs'
51-
import { remote } from 'electron'
51+
import { dialog } from '@electron/remote'
5252
import MyDialog from './MyDialog.vue'
5353
import { ElLoadingComponent } from 'element-ui/types/loading'
5454
@@ -81,7 +81,7 @@ export default class ImportScript extends Vue {
8181
private getFileData() {
8282
let loading: ElLoadingComponent | undefined = undefined
8383
const extensions = this.extension === 'avsc' ? ['avsc', 'json'] : [`${this.extension}`]
84-
remote.dialog
84+
dialog
8585
.showOpenDialog({
8686
properties: ['openFile'],
8787
filters: [{ name: '', extensions }],

src/main/newWindow.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { BrowserWindow } from 'electron'
22
import { createProtocol } from 'vue-cli-plugin-electron-builder/lib'
3+
import { enable } from '@electron/remote/main'
34

45
interface WindowOptions {
56
theme: Theme
@@ -24,7 +25,6 @@ const newWindow = (id: string, options: WindowOptions) => {
2425
y,
2526
webPreferences: {
2627
webSecurity: false,
27-
enableRemoteModule: true,
2828
nodeIntegration: true,
2929
contextIsolation: false,
3030
},
@@ -44,6 +44,8 @@ const newWindow = (id: string, options: WindowOptions) => {
4444
// Load the index.html when not in development
4545
createWindow.loadURL(`app://./index.html/#${options.path}/${id}`)
4646
}
47+
// 添加 @electron/remote 初始化
48+
enable(createWindow.webContents)
4749
createWindow.on('closed', () => {
4850
createWindow = null
4951
})

src/main/updateDownloader.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import axios from 'axios'
22
import { BrowserWindow, IpcMainEvent, ipcMain } from 'electron'
33
import version from '@/version'
44
import { getCurrentLang, versionDetail } from './updateChecker'
5+
import { enable } from '@electron/remote/main'
56

67
const { autoUpdater } = require('electron-updater')
78

@@ -53,9 +54,9 @@ export async function createUpdateWindow() {
5354
webPreferences: {
5455
nodeIntegration: true,
5556
contextIsolation: false,
56-
enableRemoteModule: true,
5757
},
5858
})
59+
enable(updateWindow.webContents)
5960
updateWindow.loadURL(link)
6061
} catch (e) {
6162
return

src/store/modules/app.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import Vue from 'vue'
22
import useServices from '@/database/useServices'
3-
import { remote } from 'electron'
3+
import { getGlobal } from '@electron/remote'
44

55
const TOGGLE_THEME = 'TOGGLE_THEME'
66
const TOGGLE_LANG = 'TOGGLE_LANG'
@@ -38,7 +38,7 @@ const getShowConnectionList = (): boolean => {
3838
return JSON.parse(_showConnectionList)
3939
}
4040

41-
const settingData = remote.getGlobal('sharedData')
41+
const settingData = getGlobal('sharedData')
4242

4343
const app = {
4444
state: {

src/utils/logger.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
import log4js from 'log4js'
2-
import { app, remote } from 'electron'
2+
import { app } from 'electron'
3+
// 根据进程类型分别导入不同的 remote 模块
4+
const isRenderer = process.type === 'renderer'
5+
// 渲染进程使用 @electron/remote
6+
// 主进程使用 electron 的 app 模块
7+
const electronApp = isRenderer ? require('@electron/remote').app : app
38
import fs from 'fs-extra'
49
import path from 'path'
510

611
export const getOrCreateLogDir = () => {
712
const isRenderer: boolean = process.type === 'renderer'
813
// Render process use remote app
9-
const APP: Electron.App = isRenderer ? remote.app : app
14+
const APP: Electron.App = isRenderer ? electronApp : app
1015

1116
const STORE_PATH: string = APP.getPath('userData')
1217
const LOG_DIR: string = path.join(STORE_PATH, 'logs')

src/views/Home.vue

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<script lang="ts">
1313
import { Component, Vue } from 'vue-property-decorator'
1414
import { Getter, Action } from 'vuex-class'
15-
import { remote } from 'electron'
15+
import { nativeTheme } from '@electron/remote'
1616
import Ipc from '@/components/Ipc.vue'
1717
import Leftbar from '@/components/Leftbar.vue'
1818
import DatabaseError from '@/components/DatabaseError.vue'
@@ -38,7 +38,7 @@ export default class Home extends Vue {
3838
private updateActive: boolean = false
3939
4040
private setTheme(theme: Theme): void {
41-
const { shouldUseDarkColors } = remote.nativeTheme
41+
const { shouldUseDarkColors } = nativeTheme
4242
let currentTheme = theme
4343
if (this.syncOsTheme) {
4444
currentTheme = shouldUseDarkColors ? 'night' : 'light'

src/views/connections/ConnectionForm.vue

+6-6
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@
216216
</el-form-item>
217217
</el-col>
218218
<el-col :span="2">
219-
<a href="javascript:;" class="icon-oper" @click="getFilePath('ca')">
219+
<a href="javascript:;" class="icon-oper" @click="getFileContent('ca')">
220220
<i class="el-icon-folder-opened"></i>
221221
</a>
222222
</el-col>
@@ -226,7 +226,7 @@
226226
</el-form-item>
227227
</el-col>
228228
<el-col :span="2">
229-
<a href="javascript:;" class="icon-oper" @click="getFilePath('cert')">
229+
<a href="javascript:;" class="icon-oper" @click="getFileContent('cert')">
230230
<i class="el-icon-folder-opened"></i>
231231
</a>
232232
</el-col>
@@ -236,7 +236,7 @@
236236
</el-form-item>
237237
</el-col>
238238
<el-col :span="2">
239-
<a href="javascript:;" class="icon-oper" @click="getFilePath('key')">
239+
<a href="javascript:;" class="icon-oper" @click="getFileContent('key')">
240240
<i class="el-icon-folder-opened"></i>
241241
</a>
242242
</el-col>
@@ -594,9 +594,9 @@
594594
</template>
595595

596596
<script lang="ts">
597-
import { remote } from 'electron'
598597
import { Component, Vue, Prop, Watch } from 'vue-property-decorator'
599598
import { Getter, Action } from 'vuex-class'
599+
import { dialog } from '@electron/remote'
600600
import _ from 'lodash'
601601
import time from '@/utils/time'
602602
import useServices from '@/database/useServices'
@@ -776,8 +776,8 @@ export default class ConnectionForm extends Vue {
776776
this.record.clientIdWithTime = !this.record.clientIdWithTime
777777
}
778778
779-
private getFilePath(key: 'ca' | 'cert' | 'key') {
780-
remote.dialog
779+
private getFileContent(key: 'ca' | 'cert' | 'key') {
780+
dialog
781781
.showOpenDialog({
782782
properties: ['openFile'],
783783
filters: [{ name: 'CA', extensions: ['crt', 'key', 'pem', 'jks', 'der', 'cer', 'pfx'] }],

src/views/settings/index.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,8 @@
420420
<script lang="ts">
421421
import { Component, Vue } from 'vue-property-decorator'
422422
import { Getter, Action } from 'vuex-class'
423-
import { ipcRenderer, remote } from 'electron'
423+
import { ipcRenderer } from 'electron'
424+
import { nativeTheme } from '@electron/remote'
424425
import ImportData from '@/components/ImportData.vue'
425426
import ExportData from '@/components/ExportData.vue'
426427
import ClearUpHistoryData from '@/components/ClearUpHistoryData.vue'
@@ -518,7 +519,7 @@ export default class Settings extends Vue {
518519
519520
private handleSyncOsThemeSwitchChange(value: boolean) {
520521
if (value) {
521-
const theme = remote.nativeTheme.shouldUseDarkColors ? 'night' : 'light'
522+
const theme = nativeTheme.shouldUseDarkColors ? 'night' : 'light'
522523
this.handleSelectChange('theme', theme)
523524
}
524525
this.actionSyncOsTheme({ syncOsTheme: value })

yarn.lock

+19-20
Original file line numberDiff line numberDiff line change
@@ -1019,10 +1019,10 @@
10191019
ajv "^6.12.0"
10201020
ajv-keywords "^3.4.1"
10211021

1022-
"@electron/get@^1.0.1":
1023-
version "1.12.4"
1024-
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab"
1025-
integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg==
1022+
"@electron/get@^1.13.0":
1023+
version "1.14.1"
1024+
resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.14.1.tgz#16ba75f02dffb74c23965e72d617adc721d27f40"
1025+
integrity sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==
10261026
dependencies:
10271027
debug "^4.1.1"
10281028
env-paths "^2.2.0"
@@ -1032,9 +1032,14 @@
10321032
semver "^6.2.0"
10331033
sumchecker "^3.0.1"
10341034
optionalDependencies:
1035-
global-agent "^2.0.2"
1035+
global-agent "^3.0.0"
10361036
global-tunnel-ng "^2.7.1"
10371037

1038+
"@electron/remote@^2.1.2":
1039+
version "2.1.2"
1040+
resolved "https://registry.yarnpkg.com/@electron/remote/-/remote-2.1.2.tgz#52a97c8faa5b769155b649ef262f2f8c851776e6"
1041+
integrity sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==
1042+
10381043
"@electron/[email protected]":
10391044
version "1.2.0"
10401045
resolved "https://registry.yarnpkg.com/@electron/universal/-/universal-1.2.0.tgz#518cac72bccd79c00bf41345119e6fdbabdb871d"
@@ -4269,11 +4274,6 @@ core-js@^2.4.0, core-js@^2.6.11, core-js@^2.6.5:
42694274
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
42704275
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
42714276

4272-
core-js@^3.6.5:
4273-
version "3.15.0"
4274-
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.15.0.tgz#db9554ebce0b6fd90dc9b1f2465c841d2d055044"
4275-
integrity sha512-GUbtPllXMYRzIgHNZ4dTYTcUemls2cni83Q4Q/TrFONHfhcg9oEGOtaGHfb0cpzec60P96UKPvMkjX1jET8rUw==
4276-
42774277
42784278
version "1.0.2"
42794279
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -5256,12 +5256,12 @@ electron-updater@^5.0.5:
52565256
semver "^7.3.5"
52575257
typed-emitter "^2.1.0"
52585258

5259-
electron@^13.6.6:
5260-
version "13.6.6"
5261-
resolved "https://registry.yarnpkg.com/electron/-/electron-13.6.6.tgz#ebd4754b2b55d54a2e8e9cdc3d0a2bb6b7053827"
5262-
integrity sha512-TP2Bl1nTxaH1yRmlYiF7imzvKE/NASE0cl6wOYA3AaP/UrBGc4L3NwJfn5Z55o+1t4TH8vCRxENufESyb32HhA==
5259+
electron@^15.5.2:
5260+
version "15.5.7"
5261+
resolved "https://registry.yarnpkg.com/electron/-/electron-15.5.7.tgz#aadb0081c504f2c2d8f81ea5fd23e38881afe86a"
5262+
integrity sha512-n4mVlxoMc4eYx07wWFWGficL+iOMz5xZEf5dBtE/wwLm0fQpYVyW4AlknMFG9F8Css0MM0JSwNMOyRg5e1vDtg==
52635263
dependencies:
5264-
"@electron/get" "^1.0.1"
5264+
"@electron/get" "^1.13.0"
52655265
"@types/node" "^14.6.2"
52665266
extract-zip "^1.0.3"
52675267

@@ -6483,13 +6483,12 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
64836483
once "^1.3.0"
64846484
path-is-absolute "^1.0.0"
64856485

6486-
global-agent@^2.0.2:
6487-
version "2.2.0"
6488-
resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.2.0.tgz#566331b0646e6bf79429a16877685c4a1fbf76dc"
6489-
integrity sha512-+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==
6486+
global-agent@^3.0.0:
6487+
version "3.0.0"
6488+
resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-3.0.0.tgz#ae7cd31bd3583b93c5a16437a1afe27cc33a1ab6"
6489+
integrity sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==
64906490
dependencies:
64916491
boolean "^3.0.1"
6492-
core-js "^3.6.5"
64936492
es6-error "^4.1.1"
64946493
matcher "^3.0.0"
64956494
roarr "^2.15.3"

0 commit comments

Comments
 (0)