前提・実現したいこと
Electronのバージョンアップに伴い、preloadファイルを使用したアプリへ修正を行っております。
発生している問題・エラーメッセージ
preloadファイルの読み込みでエラーが発生しており、プロセス間通信実装の障害になっております。
Unable to load preload script: '~/preload.js'
VM75 renderer_init.js:93 TypeError: Cannot read property 'createElement' of undefined
該当のソースコード
javascript
1//main.js - メインプロセス 2'use strict'; 3 4const {app,BrowserWindow,ipcMain} = require("electron"); 5const path = require("path"); 6 7let mainWindow; 8 9const createMainWindow = ()=>{ 10 mainWindow = new BrowserWindow({ 11 width: 800, 12 height: 600, 13 webPreferences: { 14 nodeIntegration: false, 15 contextIsolation: true, 16 preload: path.join(__dirname, 'preload.js') 17 } 18 }); 19 20 mainWindow.loadURL(path.join(__dirname, 'index.html')); 21 mainWindow.on('closed', function() { mainWindow = null; }); 22 23} 24 25app.on('window-all-closed', function() { 26 if (process.platform != 'darwin') {app.quit();} 27}); 28 29app.on('ready', createMainWindow); 30 31ipcMain.on("hoge", (fuga) => { console.log(fuga); });
javascript
1//preload.js 2const { contextBridge, ipcRenderer} = require("electron"); 3 4console.log('preload'); 5 6contextBridge.exposeInMainWorld( 7 "requires", { 8 "jquery": require('jquery') 9 }, 10 "api", { 11 send: (channel, data) => { 12 ipcRenderer.send(channel, data); 13 } 14 } 15);
javascript
1//index.js - レンダラプロセス 2"use strict"; 3 4window.api.send("hoge", "send"); 5
試したこと
実行時、preloadファイル内console.log('preload');
が読み込めているので、ファイル自体は問題ないようなのですが、
レンダリングプロセス側のコンソールに該当のエラーメッセージが表示されています。
補足情報(FW/ツールのバージョンなど)
Electron v13.1.1
Node v14.15.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。