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

    在项目中,经常会遇到一些导出固定格式文件的需求。这种需求通常需要提前准备一个模板(例如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、自动将项目中的模板文件打包,并自动安装)