我做了一个简单的Electron应用:
- main.js *
const {app, BrowserWindow} = require('electron')
const path = require('path')
const url = require('url')
let win
function createWindow () {
win = new BrowserWindow({
width: 800,
height: 600,
icon: path.join(__dirname, 'icon.ico')
})
win.maximize();
win.loadURL('https://stackoverflow.com/', {"extraHeaders" : "pragma: no-cache\n"});
win.on('closed', () => {
win = null
})
}
app.on('ready', createWindow)
app.on('browser-window-created',function(e,window) {
window.setMenu(null);
});
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
app.on('activate', () => {
if (win === null) {
createWindow()
}
})
package.json
{
"name": "test",
"version": "1.0.0",
"main": "main.js",
"build": {
"appId": "com.test.app",
"copyright": "test",
"productName": "test"
},
"devDependencies": {
"electron": "1.7.9",
"electron-builder": "^19.46.4",
"electron-packager": "^10.1.0"
}
}
使用electron-packager,我构建了要发布的包:
electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --prune=true --out=release-builds
构建的包总大小为107 MB。
有没有人有缩小 Package 尺寸的建议?
5条答案
按热度按时间nukf8bse1#
您可以通过使用electron-builder包进行打包来减小电子应用程序的大小。
PicArt是我最近开发的一个electronjs应用。使用reactJS构建最初,当我使用电子打包器打包应用程序时,Window的构建大小约为***98 MB***。然后我发现了这个很棒的样板electron-react,他们在那里配置了电子构建器来生成优化的构建大小。使用这些配置设置后,PicArt的构建现在大约为***36 MB***。
是的,可以减少应用程序的大小,但配置构建设置非常痛苦和耗时。
zlwx9yxi2#
我设法将我的mac应用程序的最终大小从250MB减少到128MB,方法是将'electron'和我的reactJs
dependencies
移动到package.json
中的devDependencies
...因为我所需要的就是最后一个bundle.js但遗憾的是,我不能得到比这更低的,因为电子框架是18MB,如果你正在制作一个小应用程序,这是一些,但我想这是制作跨平台Web应用程序的代价
s6fujrry3#
我在一个200 MB的应用程序中遇到了同样的问题。最后把它降到176 MB,最后降到55 MB。
以下是我所做的(如果有帮助的话):
*电子构建器:打包应用程序
*剪枝:清理未使用的模块
*清理package.json文件:相依性
打包App:
注意:我做了一个Windows应用程序。
在文档中提到了一个两步的package.json方法,但是在我自己尝试(并确认文档)之后,它就不需要了。
奇怪的是,对我来说,什么工作是删除我的整个“节点模块”文件夹,并运行“npm install”将所有内容都带回来。紧接着,我运行了'npm prune'来清除'Node Modules'文件夹中没有使用的任何内容(即使我刚刚运行了'npm install')。我还仔细检查了electron和electron-builder都不在package.json文件的“dependencies”部分。在这之后,我打包了app/
正如大家可能已经知道的那样,使用electron-builder,您的“dist”文件夹(除非您更改了默认目录)应该直接在“dist”目录中包含一个
.exe
文件,以及一个包含.exe
文件的“未打包”文件夹,该文件取决于同一文件夹中的相关文件。但是,我拥有的.exe
文件(直接位于'dist'文件夹中的文件)只有55 MB。虽然公平地说,这个文件确实安装了程序,一旦安装,大小确实会膨胀回171 MB左右。我会再次张贴,如果我能找到另一种方法来减少文件大小在所有。
piztneat4#
电子版对于减小封装尺寸很重要。
不重新编译CEF的情况下,Windows x64上的最小包大小:
Electron v16.0.2
,其中Chromium v96
=> 52.9MBElectron v3.1.13
,其中Chromium v66
=> 32.4MB您可以从here中选择最佳版本electron
选择版本后如何再次缩小:
1.删除客户未使用的文件,如
d3dcompiler_47.dll
1.使用更好的压缩算法,如
7zip
Windows上Electron v3打包所需的所有文件,例如:
pobjuy325#
有一个问题,一个大的便携式应用程序exe去740 MB。每天我重建它都在变化,我很困惑。(140MB,340MB,140MB,740MB)
它是Angular(16.0.5)Electron(25.1.0)构建版本,我使用了这个非常有用的模板:https://github.com/maximegris/angular-electron/blob/main/electron-builder.json
Angular dist构建约为80 MB,包含音乐和视频等所有资产。
在查看了发生的事情之后,我发现electron-builder.json中的文件在这个模板中没有很好的定义。
它还复制了所有node_modules和src文件夹,包括所有资产以及所有json和config文件。
我将其更改为这样,只指定需要的文件:
现在便携式应用程序exe是143 MB不再是740 MB。
node_modules文件夹是不需要的,即使你使用电子功能,如:
希望这也能对你有所帮助。