无星的electron之旅(十四)—— 裁包之去掉语言文件

1,159 阅读1分钟

一、背景

很久没写bug了,最近写了一些业务上的小工具,因为包有点大,所以要裁一下。

首选其实就是去掉不需要的语言文件

二、如何实现

2.1 添加默认语言

electron的入口文件添加

app.commandLine.appendSwitch('lang', 'zh-CN');

2.2 在打包后的钩子处脚本删除

比如我使用的是electron-builder,可以在打包配置文件中找到afterPack这个配置项

配置读取的脚本文件如下:

//build/hooks/afterPack.js
//参考 https://www.electron.build/configuration/configuration#afterpack
exports.default = async function (context) {
    //console.log(context)
    const fs = require('fs')
    const localeDir = context.appOutDir + '/locales/'

    fs.readdir(localeDir, function (err, files) {
        if (!(files && files.length)) return
        for (let i = 0, len = files.length; i < len; i++) {
            const match = files[i].match(/zh-CN\.pak/) //只保留中文
            if (match === null) {
                fs.unlinkSync(localeDir + files[i])
            }
        }
    })
}

done

参考

electron通过删除未使用的语言文件缩减打包后大小