electron-vue打包后static中的静态文件访问不到?

发布于 2022-09-11 16:33:08 字数 1239 浏览 6 评论 0

1、问题1:在electron-vue中的static文件夹下放了一个7za.exe文件,希望在electron中使用childprocess.exec来调用,在npm run dev环境下使用path.join(__static,"7za.exe")可以访问到,但是打包后,这里的static中的7za.exe文件会被打包放到哪里了呢?(把包使用的是electron-vue自带的electron-builder。)

代码:
//这里是想使用nodejs的进程调用.exe文件。
childprocess.exec(path.join(__static,"7za.exe")(err,stdout,stderr)=>{

if(err){
    console.log(err);
    return false;
}
console.log(stdout);

});

2、问题2:在electron中从一个指定地址下载一个.zip文件,我如果想把文件放到打包后的应用程序根目录下,下载时使用item.setSavePath("路径"+\\${item.getFilename()});设置下载位置时,路径该怎么写呢?(还是说保存到其它位置)
mainWindow.webContents.session.on('will-download', (event, item, webContents) => {

//如果要保存到打包后的应用程序根目录下,这里的保存路径怎么写呢?
item.setSavePath(保存路径+`\\${item.getFilename()}`);
item.on("updated",(event,state)=>{
  const totalBytes=item.getTotalBytes();
  mainWindow.setProgressBar(item.getReceivedBytes()/totalBytes);
  mainWindow.webContents.send("downloadTips",`下载中: ${Math.round(item.getReceivedBytes()/totalBytes*100)}%`);
  if(state=="interrupted"){
    console.log("下载中断,但可以恢复");
  }else if(state=="progressing"){
    console.log("暂停下载");
  }else{
    console.log(`下载中: ${item.getReceivedBytes()}`)
    
  }
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只有一腔孤勇 2022-09-18 16:33:08

electron-builder打包后,会生成一个.asar文件,是属于只读的,而且打包后发现__static并找不到静态文件,可以手动path.join(__dirname, '/static')来寻找静态文件
如果需要操作文件的话,需要存放在userData 下,或者设置asar:false

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文