【问题标题】:Preload not working/compiled correctly in production (Electron-vue SimulatedGREG)预加载在生产中无法正常工作/编译(Electron-vue SimulatedGREG)
【发布时间】:2020-12-01 14:21:42
【问题描述】:

我有一个在开发中运行良好的preload 脚本。我已经看到here 我需要使用static 文件或webpack。我选择了static 方法,因为我对webpack 的知识为零。

目前,我正在使用 webview,这个 webview 的 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 访问它。

我希望有人能帮助我。

【问题讨论】:

    标签: node.js vue.js vuejs2 electron electron-vue


    【解决方案1】:

    在我看来,问题在于您的项目结构有点错误。静态目录应该位于项目根目录中。当您为生产构建应用程序时,该目录将被复制到 app.asar 目录中。这就是为什么它在那里寻找。但是,由于根目录中没有静态目录,因此不会复制任何内容。

    要检查项目目录结构,请查看以下文档页面: https://webpack.electron.build/project-structure

    【讨论】:

    • 我刚刚发现我把它放在了错误的static文件夹中,这真的很奇怪:D。谢谢你的详细解答!我把它标记为正确的。
    • 很高兴能帮上忙 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    • 2016-10-26
    • 2013-07-31
    • 2018-02-09
    • 2019-11-13
    • 2012-09-15
    相关资源
    最近更新 更多