如何减小超过600 mb的电子封装尺寸 [英] How to reduce Electron package size that exceeds more than 600 mb

查看:121
本文介绍了如何减小超过600 mb的电子封装尺寸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看到这是因为节点模块和应用程序打包了一些不需要的东西以便运行.当前文件大小为600 mb,但我希望它小于200 mb.

I see this is because of node-modules and application is packaged with some unwanted stuffs for running. Current file size is 600 mb but I want it to be less than 200 mb.

我怀疑--no-prune会填充所构建软件包中的所有节点模块,但是我只需要在所构建软件包中指定节点模块

I suspect --no-prune populates all the node-modules in package that is built, but I need only specifies node-modules in the package that is built

我尝试删除package.json中不需要的软件包,这也无济于事

I tried removing unwanted packages in package.json, it doesn't help me either

重构后

 "bundledDependencies": [

    "fs",

    "os",
    "path",

    "regedit",
    "request",
    "start",
    "xml2js",
    "util",
    "replace",
    "process",
    "fs",
    "console"

  ],
**before refactoring**
 "bundledDependencies": [
    "archiver",
    "child_process",
    "fs",
    "node-wget",
    "os",
    "path",
    "ping",
    "regedit",
    "request",
    "start",
    "xml2js",
    "util",
    "replace",
    "process",
    "fs",
    "console",
    "electron",
    "electron-builder",
    "electron-packager"
  ],

这也没有帮助我

package.json

{
  "productName": "xyz",
  "description": "something",
  "version": "1.0.1",
  "main": "main.js",
  "scripts": {
    "start": "electron .",

    "builderForWindows": "electron-packager --out winx64 --overwrite --platform win32 --appname clientsettings . --executable-name abc --no-prune",
    "builderForLinux": "electron-packager --out Linx64 --overwrite --platform linux --appname clientsettings .  --executable-name abc --no-prune"
  },
  "author": "xyz",
  "devDependencies": {
    "archiver": "^2.1.1",
    "asar": "^2.0.1",
    "child_process": "^1.0.2",
    "console": "^0.7.2",
    "electron": "^4.0.4",
    "electron-builder": "^20.41.0",
    "electron-packager": "^13.1.1",
    "fs": "0.0.1-security",
    "node-wget": "^0.4.2",
    "os": "^0.1.1",
    "path": "^0.12.7",
    "ping": "^0.2.2",
    "regedit": "^3.0.2",
    "replace": "^1.1.0",
    "replace-in-file": "^4.1.0",
    "request": "^2.85.0",
    "start": "^5.1.0",
    "xml2js": "^0.4.19"
  },
  "bundledDependencies": [
    "archiver",
    "child_process",
    "fs",
    "node-wget",
    "os",
    "path",
    "ping",
    "regedit",
    "request",
    "start",
    "xml2js",
    "util",
    "replace",
    "process",
    "fs",
    "console",
    "electron",
    "electron-builder",
    "electron-packager"
  ],
  "dependencies": {
    "appdata-path": "^1.0.0",
    "targets": "^1.11.0"
  }
}

推荐答案

App Bundle有一些不必要的节点 模块(例如:electron-packager,electron-builder),为什么需要它们 捆绑后,如何摆脱它们?

App Bundle has some unnecessary node modules(ex:electron-packager,electron-builder),why do I need them after its bundled, how to get rid of them?

"bundledDependencies"中列出的所有内容都将包含在应用程序捆绑包中.

Everything listed in "bundledDependencies" will be included in the app bundle.

  "bundledDependencies": [
    "archiver",
    "child_process",
    "fs",
    "node-wget",
    "os",
    "path",
    "ping",
    "regedit",
    "request",
    "start",
    "xml2js",
    "util",
    "replace",
    "process",
    "fs",
    "console",
    "electron",
    "electron-builder",
    "electron-packager"
  ],


  "builderForWindows": "electron-packager --out winx64 --overwrite --platform
 win32 --appname clientsettings . --executable-name abc --no-prune",

指定不修剪" –请参阅以下答案: https://stackoverflow.com/a/44156640/840992

Specifying "no prune" – see this answer: https://stackoverflow.com/a/44156640/840992

请注意不要将不需要的node_modules包含在最终应用程序中.如果将它们放在 package.json,默认情况下,与这些模块都不相关的模块 依赖项将复制到应用程序捆绑包中. (此行为可以是 通过--no-prune标志关闭.)

Be careful not to include node_modules you don't want into your final app. If you put them in the devDependencies section of package.json, by default none of the modules related to those dependencies will be copied in the app bundles. (This behavior can be turned off with the --no-prune flag.)

在电子包装器API页面上有关--prune标志的信息

From electron-packager API page about --prune flag

运行程序包管理器命令从以下位置删除package.json的devDependencies部分中指定的所有程序包: 输出的电子应用程序.

Runs the package manager command to remove all of the packages specified in the devDependencies section of package.json from the outputted Electron app.

这篇关于如何减小超过600 mb的电子封装尺寸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆