微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

[Snowpack][Electron] 如何在渲染器进程中导入“电子”?

如何解决[Snowpack][Electron] 如何在渲染器进程中导入“电子”?

最近,我尝试使用 SNowpack 开始我的个人电子项目。而我的项目基于 electron-snowpack ,一开始一切都很好。但是当我尝试在渲染器进程中导入包 electron 或任何其他节点包时。发生错误

import {remote} from 'electron' 
console.log(remote) 

import electron error
我试过如下:

  1. 设置网络首选项:
nodeIntegration:true,contextIsolation:false,enableRemoteModule:true,
  1. 使用 preload
// preload.js
const {
    contextBridge,ipcRenderer
} = require("electron");


contextBridge.exposeInMainWorld("api",{
    send:(channel,data)=>{
        // whitelist channels
        let validChannels = ["toMain"];
        if (validChannels.includes(channel)) {
            ipcRenderer.send(channel,data);
        }
    },receive: (channel,func) => {
        let validChannels = ["fromMain"];
        if (validChannels.includes(channel)) {
            // Deliberately strip event as it includes `sender`
            ipcRenderer.on(channel,(event,...args) => func(...args));
        }
    }
})

// main.js
 const win = new browserWindow({
    width: 1200,height: 800,webPreferences: {
      nodeIntegration: false,// is default value after Electron v5
      contextIsolation: true,// protect against prototype pollution
      enableRemoteModule: false,// turn off remote
      preload:"./preload.js"
    },})

// renderer.js
console.log(window.api)  // undefined

  1. 在主进程中定义window.require。然后const electron = require("electron")。发生错误 require is not a function

我尝试了所有我能找到的解决方案。但错误仍然接踵而至。 有没有人可以给我任何帮助?谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。