问题描述
我有一个preload
脚本,在开发中运行良好。我已经看到here需要使用static
文件或webpack
。我之所以采用static
方法,是因为我的知识webpack
为零。
当前,我正在使用一个Web视图,该Web视图具有如下的preload
:
<webview :id="webview.key" :src="webview.url" :preload="preload_path" style="height: 100%" pcontextIsolation></webview>
preload_path
如下:
preload_path: `file://${path.join(__static,'/serverBrowserIPC.js')}`,
我的项目的结构是:
- dist
- - static
serverBrowserIPC.js
api.js
- src
- - main
- - renderer
preload
文件为serverBrowserIPC.js
,而serverBrowserIPC.js
需要api.js
require("./api.js")
由于我不知道的已知原因,preload
无法正常工作,并引发以下错误:
F:\Web\my-project\build\win-unpacked\resources\app.asar\dist\electron\static\serverBrowserIPC.js
对我来说,这没有意义,因为我已经说过它位于静态文件夹中,但electron-app
决定通过捆绑的app.asar
访问它。
我希望有人能帮助我。
解决方法
在我看来,问题在于您的项目结构有些错误。静态目录应位于项目根目录中。当您构建用于生产的应用程序时,该目录将被复制到app.asar目录中。这就是为什么它在那里看。但是,由于根目录中没有静态目录,因此不会复制任何内容。
要检查项目目录结构,请查看以下文档页面: https://webpack.electron.build/project-structure