Electron V3.0.5
您好,我有一个使用Electron和create-react-app的项目,但无法让我的项目找到预加载脚本。
这是webview标记:
<webview preload={`./Injects/preload.js`} />
当我使用如图所示的标记时,控制台会告诉我必须使用file:
协议。所以我尝试了:
<webview preload={`file://${__dirname}/Injects/preload.js`} />
但是,当然,这使我进入了其中没有Injects / preload.js的.asar打包文件的路径。
我还尝试将注入脚本放入公用文件夹中并使用
<webview preload={`${process.env.PUBLIC_URL}/Injects/preload.js`} />
和
<webview preload={`file://${process.env.PUBLIC_URL}/Injects/preload.js`} />
但是我只遇到相同的错误,而且process.env.PUBLIC_URL仍然返回“”。
任何帮助将不胜感激,我无法在任何地方找到该问题的答案。
答案 0 :(得分:1)
let path = `file:${require('path').resolve(__static, './preload.js')}`
我将preload.js
放在电子项目的static
文件夹中,它对我有用
答案 1 :(得分:0)
为解决该问题,我根据__dirname创建了一个__static变量,该变量根据生产或开发版本而更改了位置。