electron 主进程和渲染进程中使用node模块

主进程中使用node模块

//在main.js中引入
const fs = require('fs')
//在主进程中使用node.js
  fs.readFile("package.json",(err,data)=>{
    if(err){
      console.log("err")
    }
    console.log(data.toString())
  })

渲染进程使用node.js

①main.js

const { app, BrowserWindow } = require('electron');
const path = require('path')
let mainWindow = null;

app.on('ready', () => {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 800,
    // 在渲染进程中使用node, 需要要配置webPreferences属性
    webPreferences: {preload: path.join(__dirname, 'preload.js')}
  });
  mainWindow.loadFile('index.html'); // 加载网页
  mainWindow.on('close', () => {
    mainWindow = null;
  })
})

preload.js

const fs = require('fs')

fs.readFile("package.json",(err,data)=>{
  if(err){
    console.log("err")
  }
  console.log(data.toString())
})

②main.js

const { app, BrowserWindow } = require('electron');

let mainWindow = null;

app.on('ready', () => {
  mainWindow = new BrowserWindow({
    width: 800,
    height: 800,
    // 在渲染进程中使用node, 需要要配置webPreferences属性
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false  //Electron 12.0以上版本需要的额外设置此项}
  });
  mainWindow.loadFile('index.html'); // 加载网页
  mainWindow.on('close', () => {
    mainWindow = null;
  })
})

index.html



  
    
    
    
    Hello World!
  
  
    

Hello World!

We are using Node.js , Chromium , and Electron .

renderer.js

const fs = require('fs')

window.onload = function () {
    fs.readFile("package.json",(err,data)=>{
        if(err){
            console.log("err")
        }
        console.log(data.toString())
    })
}

类似解决方案:https://www.jianshu.com/p/4520dd7ea586

你可能感兴趣的:(electron,electron,javascript,vue.js)