美文网首页
09、自动将项目中的模板文件打包,并自动安装

09、自动将项目中的模板文件打包,并自动安装

作者: 仙人掌开不了花 | 来源:发表于2021-06-08 08:47 被阅读0次
        在项目中,经常会遇到一些导出固定格式文件的需求。这种需求通常需要提前准备一个模板(例如word、excel等)保存在项目中,但electron默认会对应用程序的代码使用asar压缩打包,打包以后就没有办法获取到模板文件了,不打包又不够安全,代码容易被解密,那辛辛苦苦写的东西就会被别人轻而易举的读取,如果含有保密的信息或者加密的代码呢,后果很严重。所以,一定要用asar打包,那模板的问题怎么办?
        我找了很多资料来寻找解决的办法,找到一个最简单最快捷最有效的办法——配置package。在项目下新建一个文件夹extra,里面存放的是需要打包进安装包的文件,将这个文件夹配置到package里面即可,不需要写任何代码。调用的时候只需要获取.exe的完整路径,然后就可以找到安装后的模板文件夹路径了。网上讲的最多的一个参数是extraResources,安装应用后路径为```安装目录/resources/extra```,但是这种方法同样要求不许用asar打包。要是能放在```安装目录/extra```里多好,就一点问题都没有了。
        事实是,真的可以!!!步骤如下:
    
    1. 搭建electron-vue框架
      前面有详细的介绍,这里就不再赘述了。Electron+Vue开发轻量级应用
    2. 项目下新建文件夹extra,与src、dist、build同级,将模板文件或者其他一些想直接打包进安装包的文件丢进去
      3.配置package,将新建的文件夹配置到extraFiles中
    {  
      "build": {
        ……
        "extraFiles": [
          "extra/**"
        ],
        "asar": true,    
        "nsis": {
          "oneClick": false,
          "allowToChangeInstallationDirectory": true,
        },
        ……
      }  
    }
    
    

    4.开发环境和正式环境调用extra文件夹中的内容

    import path from 'path'
    import { app } from 'electron'
    
    const helpPath = path.join(path.dirname(app.getPath('exe')), '/extra/模板文件.docx')
    // 这就是文件的绝对路径了,可以为所欲为了
    

    相关文章

      网友评论

          本文标题:09、自动将项目中的模板文件打包,并自动安装

          本文链接:https://www.haomeiwen.com/subject/ngowsltx.html