asar文件的解压读取

2023/06/12 posted in  开发技术

在实际开发中,有这样子的需求,就是需要解压asar结尾的文件。这里会涉及到两个基础环境的安装,node.js和npm有对应的配置。
在本次的实验中使用的配置如下:
node版本:18
npm版本:10.0.1

1 网上教程

app.asar文件是Electron加密打包时的中间产物,electron.exe调用resources文件夹下的app.asar从而实现不用解压缩而直接读取文件内容的高效。

在网上的一些教程中,对asar文件的解压和打包主要是执行以下命令:

1、安装asar 
npm install -g asar
2、cmd窗口中解压文件
asar extract app.asar ./app
3、没有表示成功
在文件夹系统中可以查看

2 报错提示

执行安装命令中,实际会报错以下消息:

npm WARN deprecated [email protected]: Please use @electron/asar moving forward. There is no API change, just a package name change

原因是在新版本的框架中,已经有包含了asar的支持,不需要在额外下载对应的模块,只需要更更换执行的命令即可。

根据警告消息所示,官方建议改用 @electron/asar。这是一个针对 Electron 应用程序中的数据和文件管理的模块,它支持读取和打包应用内的文件,可以在命令行中使用。 您可以按照下面的步骤来更新 asar 版本:

1. 卸载旧版 asar: `npm uninstall asar`
2. 安装新版 @electron/asar: `npm install -g @electron/asar`
3. 使用 @electron/asar 打包应用程序: `npx asar pack <app_directory> <output_file>` 
4. 读取 asar 文件: `npx asar extract <input_file> <output_directory>`

3 执行成功

按照上一步的操作,更换了执行命令以后,就能正常把文件解压。

所以,在执行软件的使用中,有时候需要注意版本更换以后带来的问题,及时调整对应的执行和使用命令。

本文作者:redtea 红茶的博客
本文链接:https://redtea.top
版权声明:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。