电子封装:减小封装尺寸

ar0*_*968 17 javascript electron electron-packager

我做了一个简单的电子应用程序:

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()
  }
})
Run Code Online (Sandbox Code Playgroud)

的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"
  }
}
Run Code Online (Sandbox Code Playgroud)

电子包装商我建立了包发布:

electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --prune=true --out=release-builds
Run Code Online (Sandbox Code Playgroud)

构建包的总大小为107 MB.

任何人都有提示减少包装的尺寸?

Bha*_*san 12

您可以通过使用electronic-builder软件包进行打包来减小电子应用程序的大小。

PicArt是我最近开发的electronicjs应用程序。它是使用reactJS构建的。最初,当我使用electronic-packager打包应用程序时,Window的构建大小约为98 MB。然后,我发现了这个很棒的样板电子反应,他们在其中配置了电子生成器以产生最佳的构建尺寸。使用这些配置设置后,PicArt的构建现在约为36 MB

是的,可以减小应用程序的大小,但是配置构建设置非常麻烦且耗时。

  • @K.Symbol 是的。你可以在[这里](https://github.com/SimulatedGREG/electron-vue)找到它 (2认同)

Sod*_*odj 10

我设法减少我的Mac应用程序的最终大小250MB128MB移动"电子"和我reactJs dependenciesdevDependenciespackage.json......因为所有我需要的是要在最后bundle.js

但遗憾的是,我无法得到它,因为电子框架是118MB,这是一个小东西,如果你正在制作一个小应用程序,但我想这是制作跨平台网络应用程序的代价


小智 7

我在使用 200MB 的应用程序时遇到了同样的问题。设法将其降至 176MB,最后降至 55MB。

这是我所做的(如果有帮助的话):

  • Electron-builder:打包应用程序
  • 修剪:清理未使用的模块
  • 清理 package.json 文件:依赖项

打包应用程序:

注意:我制作了一个Windows应用程序。

文档中提到了一个两步 package.json 方法,但在我自己尝试(并确认文档)之后,不需要它。

对我来说奇怪的是,有效的方法是删除我的整个“Node Modules”文件夹,然后运行“npm install”将所有内容恢复。之后,我立即运行“npm prune”来清除“Node Modules”文件夹中未使用的所有内容(即使我刚刚运行了“npm install”)。我还仔细检查了电子和电子构建器都不在 package.json 文件的“依赖项”部分中。之后,我打包了应用程序/

每个人可能都知道,使用 Electron-builder,您的“dist”文件夹(除非您更改了默认目录)应.exe直接在“dist”目录中包含一个文件,以及一个“未打包”文件夹,其中包含一个.exe取决于相关文件的文件。同一文件夹内的文件。然而,.exe我拥有的文件(直接位于“dist”文件夹中的文件)只有 55MB。公平地说,该文件确实安装了该程序,并且安装后大小确实会膨胀回 171MB 左右。

如果我能找到另一种方法来减少文件大小,我会再次发布。


Bai*_*ong 6

Electron版本对于减小封装尺寸非常重要。

\n

Windows x64 上无需 CEF 重新编译的最小包大小

\n
    \n
  • Electron v16.0.2= Chromium v96> 52.9MB

    \n
  • \n
  • Electron v3.1.13= Chromium v66> 32.4MB

    \n
  • \n
\n
\n

您可以从这里选择最好的电子版本

\n
\n

选择版本后如何再次缩小尺寸

\n
    \n
  1. 为您的客户删除未使用的文件,例如d3dcompiler_47.dll
  2. \n
  3. 使用更好的压缩算法,例如7zip
  4. \n
\n

在 Windows 上打包 Electron v3 所需的所有文件,例如:

\n
\xe2\x94\x94\xe2\x94\x80App\n    \xe2\x94\x82  App.exe\n    \xe2\x94\x82  content_shell.pak\n    \xe2\x94\x82  ffmpeg.dll\n    \xe2\x94\x82  icudtl.dat\n    \xe2\x94\x82  natives_blob.bin\n    \xe2\x94\x82  node.dll\n    \xe2\x94\x82  v8_context_snapshot.bin\n    \xe2\x94\x82\n    \xe2\x94\x9c\xe2\x94\x80locales\n    \xe2\x94\x82      en-US.pak\n    \xe2\x94\x82\n    \xe2\x94\x94\xe2\x94\x80resources\n           App.asar\n           electron.asar\n
Run Code Online (Sandbox Code Playgroud)\n