1. 主进程中无需任何配置就可以使用nodejs模块
const fs=require('fs')
fs.readFile('package.json',(err,data)=>{
if(err){
console.log(err)
return
}
console.log(data.toString())
console.log(JSON.parse(data.toString()).name)
})
2. 渲染进程中使用node.js的两种方式
- BrowserWindow中通过preload加载的js文件可以直接使用nodejs模块
const mainWindow=new BrowserWindow({
width:600,
height:400,
webPreferences:{
preload:path.join(__dirname,'renderer/preload.js')
}
})
preload.js
// 渲染进程中使用node.js模块的第一种方式:BrowserWindow中配置webPreferences:{preload},不需要做配置
const fs=require('fs')
fs.readFile('package.json',(err,data)=>{
if(err){
console.log(err)
return
}
console.log(data.toString())
console.log(JSON.parse(data.toString()).name)
})
- 渲染进程中直接使用Nodejs模块:如在index.html通过script:src加载的render.js,想要在渲染进程中使用node.js,需要进行如下配置
const secondWindow=new BrowserWindow({
width:400,
height:200,
parent:mainWindow,
webPreferences:{
nodeIntegration:true, //允许渲染进程使用node.js
contextIsolation:false //允许渲染进程使用node.js
}
})
render.js
// 渲染进程中使用node.js模块的第二种方式:html中通过script:src加载js
// 配置:
/*
webPreferences:{
nodeIntegration:true, //允许渲染进程使用node.js
contextIsolation:false //允许渲染进程使用node.js
}
*/
const fs=require('fs')
fs.readFile('package.json',(err,data)=>{
if(err){
console.log(err)
return
}
console.log('render.js')
console.log(data.toString())
})