Electron中requirejs require.nodeRequire is not a function

Electron版本:原来使用的时1.7.12,只要升级到2.X及以上的版本都会报错

Nodejs: 原来的版本是10 ,尝试升级到12也有问题

require.js: 2.1.11,升级最新的3.X版本也没有解决问题;

此问题是Electron版本升级引起的:

// In the main process.
var mainWindow = new BrowserWindow({
  webPreferences: { nodeIntegration: false }
});

// nodeIntegration 在1.X版本中默认是true,后续的版本为了提升安全性,默认为false。

 

官方的文档中这样写的:

因为 Electron 在运行环境中引入了 Node.js,所以在 DOM 中有一些额外的变量,比如 moduleexports 和require。 这导致 了许多库不能正常运行,因为它们也需要将同名的变量加入运行环境中。

我们可以通过禁用 Node.js 来解决这个问题,在Electron里用如下的方式:

// 在主进程中
const { BrowserWindow } = require('electron')
let win = new BrowserWindow({
  webPreferences: {
    nodeIntegration: false
  }
})
win.show()Copy

你可能感兴趣的:(javascript,ViewUI)