electron打包、或安装完应用后,有个locales目录,里面包含了大量的语言文件,加起来有6.5M的大小
如何移除不用的语言文件
下面以只需要用到中文(zh-CN)为例
1.主进程中(background.js)添加命令
app.commandLine.appendSwitch('lang', 'zh-CN'); // 放在app ready前 app.on('ready', ...)
2.配置electron-builder的 afterPack
,
我用的vue-cli-plugin-electron-builder, electron-builder配置在vue.config.js中,如下
module.exports = { ..., pluginOptions: { ..., electronBuilder: { ..., builderOptions: { ..., afterPack: 'build/hooks/afterPack.js', //打包完后的处理 }, }, }, }
打包后移除不用的语言文件
//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]) } } }) }
这样打包后体积大约可以减少1.5M左右,还是比较可观的