【发布时间】:2018-04-28 21:17:18
【问题描述】:
我最近刚刚构建了一个电子应用程序,并使用电子打包器对其进行了打包。 .exe 文件为 55,000kb,文件夹的其余部分也相当庞大。有什么办法可以完全减小这个应用程序的大小?
【问题讨论】:
-
即使你不能用铅笔杀死大小?
标签: electron
我最近刚刚构建了一个电子应用程序,并使用电子打包器对其进行了打包。 .exe 文件为 55,000kb,文件夹的其余部分也相当庞大。有什么办法可以完全减小这个应用程序的大小?
【问题讨论】:
标签: electron
【讨论】:
来自github thread 的一篇有帮助的帖子建议通过电子打包器删除不必要的节点模块。它还提供了更多关于文件为何如此大的解释。
您可以压缩您的应用程序,如果您使用的是 electron-packager,您可以忽略一些在应用程序运行时不需要的节点模块,这会使其更小一些。例如,我有一个 37MB 的压缩电子应用程序(注意 Windows 版本要大得多,因为它包含一个 Git 副本)。但是 Electron 中总会有很大一部分 Chrome,所以只能做这么多。 Electron 本身现在约为 33MB。
【讨论】:
有一种方法可以大幅减少 Electron 的大小(最多 99%,具体取决于您的应用程序的大小),方法是使用每个操作系统中可用的本机浏览器,而不是加载 webkit。但是由于内置浏览器没有系统 API,您可以做的事情也将受到极大的限制。但是,如果您需要基本的 web ui 应用程序,这可能是最好的解决方案,但必须提到的是,它可能存在一些意想不到的问题,因为您需要在不同操作系统的浏览器上测试您的应用程序。
我所说的方法可以在Put your Electron app on a diet with ElectrinoPauli Olavi Ojala 的精彩帖子中找到
【讨论】:
如果您使用的是 Electron Builder https://www.electron.build,您应该使用列出的各种方法来删除特定平台的文件和文件夹。
例子
{
"name": "Example",
"version": "1.1.2",
"description": "",
"main": "main.js",
"scripts": {},
"build": {
"appId": "com.example",
"afterSign": "notarize.js",
"fileAssociations": [{
"ext": [
"mp4"
],
"name": "Media File",
"role": "Viewer"
}],
"dmg": {
"sign": true
},
"mac": {
"hardenedRuntime": true,
"gatekeeperAssess": false,
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist",
"icon": "build/icon.png",
"category": "public.app-category.video",
"extraFiles": [{
"from": "resources/bin/mac",
"to": "Resources/bin/mac",
"filter": [
"**/*"
]
},
{
"from": "node_modules/platforms/darwin-x64/bin",
"to": "Resources/bin/mac",
"filter": [
"**/*"
]
}
],
"files": [
"!gruntfile.js",
"!README.md",
"!notarize.js",
"!.env",
"!minify.js",
"!src/*",
"!.git/*",
"!resources/*"
]
},
"win": {
"target": "nsis",
"signingHashAlgorithms": [
"sha1"
],
"certificateFile": "",
"certificatePassword": "",
"files": [
"!gruntfile.js",
"!README.md",
"!notarize.js",
"!.env",
"!minify.js",
"!.git/*",
"!resources/mac/*"
]
}
},
"author": "Example",
"license": "ISC",
"devDependencies": {
},
"dependencies": {
}
}
【讨论】: