【问题标题】:How to reduce Electron package size that exceeds more than 600 mb如何减小超过 600 mb 的 Electron 封装尺寸
【发布时间】:2019-11-17 20:49:59
【问题描述】:

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

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

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

重构后

 "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),为什么我在捆绑后需要它们,如何摆脱它们?

标签: javascript electron package.json electron-builder electron-packager


【解决方案1】:

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

“bundledDependencies”中列出的所有内容都将包含在应用程序包中。

  "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

注意不要在最终应用中包含您不想要的 node_modules。如果你把它们放在 devDependencies 部分 package.json,默认情况下没有与这些相关的模块 依赖项将被复制到应用程序包中。 (这种行为可以 使用 --no-prune 标志关闭。)

来自有关 --prune 标志的 electron-packager API 页面

运行包管理器命令以删除 package.json 的 devDependencies 部分中指定的所有包 输出 Electron 应用程序。

【讨论】:

    猜你喜欢
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    • 2011-12-26
    • 2018-03-13
    • 2018-03-04
    相关资源
    最近更新 更多