nodeIntegration: true, 但是依旧报错:Module not found: Error: Can't resolve 'fs' in 'D:\webRoot\windowMusic\window\node_modules\electron'
时间: 2023-07-21 22:09:48 浏览: 220
这个错误是因为在渲染进程中使用了Node.js的fs模块,而在Electron中默认是禁止在渲染进程中使用Node.js模块的。要解决这个问题,可以尝试以下两种方法:
1. 在渲染进程中禁用Node.js模块:
在创建BrowserWindow时,将nodeIntegration设置为false,这样就可以禁用在渲染进程中使用Node.js模块。例如:
```
const win = new BrowserWindow({
webPreferences: {
nodeIntegration: false
}
})
```
2. 在渲染进程中使用remote模块:
可以使用Electron提供的remote模块,在渲染进程中调用主进程中的Node.js模块。例如:
在主进程中定义一个读取文件的方法:
```
const { readFile } = require('fs')
ipcMain.on('read-file', (event, filePath) => {
readFile(filePath, 'utf-8', (err, data) => {
if (err) {
event.reply('read-file-reply', err.message)
} else {
event.reply('read-file-reply', null, data)
}
})
})
```
在渲染进程中调用该方法:
```
const { ipcRenderer } = require('electron')
ipcRenderer.invoke('read-file', '/path/to/file').then((data) => {
console.log(data)
}).catch((err) => {
console.error(err)
})
```
这样就可以在渲染进程中使用Node.js模块了。
阅读全文