在 electron 中要求 node-opcua 冻结 electron 实例
Require node-opcua in electron freezes the electron instance
当 index.html 中需要 node-opcua 时,Electron 冻结,一个名为 Electron Helper 的进程占用了 100% 的 cpu。
我在 macOS 10.14.2 上遇到过这个问题,但是一个朋友在 Windows 10 上测试过并且有效。
来自 package.json
"devDependencies": {
"electron": "^4.0.4"
},
"dependencies": {
"node-opcua": "^0.5.6"
}
Main.js
const { app, BrowserWindow } = require('electron')
function createWindow () {
// Create the browser window.
win = new BrowserWindow({ width: 800, height: 600 })
// and load the index.html of the app.
win.loadFile('index.html')
win.webContents.openDevTools()
}
app.on('ready', createWindow)
Index.html
<script>
// Does not work
const opcua = require('node-opcua')
console.log(opcua)
// Works
// const fs = require('fs')
// console.log(fs)
</script>
当运行 简单代码时,它应该只在控制台中打印 opcua 对象。但是整个电子过程冻结了。
通过更新 node-opcua 到 2.1.9 和 electron 到 6.0.11 解决了这个问题
当 index.html 中需要 node-opcua 时,Electron 冻结,一个名为 Electron Helper 的进程占用了 100% 的 cpu。
我在 macOS 10.14.2 上遇到过这个问题,但是一个朋友在 Windows 10 上测试过并且有效。
来自 package.json
"devDependencies": {
"electron": "^4.0.4"
},
"dependencies": {
"node-opcua": "^0.5.6"
}
Main.js
const { app, BrowserWindow } = require('electron')
function createWindow () {
// Create the browser window.
win = new BrowserWindow({ width: 800, height: 600 })
// and load the index.html of the app.
win.loadFile('index.html')
win.webContents.openDevTools()
}
app.on('ready', createWindow)
Index.html
<script>
// Does not work
const opcua = require('node-opcua')
console.log(opcua)
// Works
// const fs = require('fs')
// console.log(fs)
</script>
当运行 简单代码时,它应该只在控制台中打印 opcua 对象。但是整个电子过程冻结了。
通过更新 node-opcua 到 2.1.9 和 electron 到 6.0.11 解决了这个问题