Как уменьшить размер электронного пакета, который превышает 600 МБ - PullRequest
0 голосов
/ 05 июля 2019

Я вижу, что это из-за узловых модулей, и приложение упаковано с некоторыми нежелательными компонентами для запуска.Текущий размер файла составляет 600 мегабайт, но я хочу, чтобы он был меньше 200 мб.в встроенном пакете

Я пытался удалить ненужные пакеты в 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"
  }
}

1 Ответ

3 голосов
/ 06 июля 2019

В App Bundle есть несколько ненужных узловых модулей (например: электронный упаковщик, электронный строитель), зачем они мне нужны после его комплектации, как от них избавиться?

Все, что указано в «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",

Указание «no prune» - см. Этот ответ: https://stackoverflow.com/a/44156640/840992

Будьте осторожны, чтобы не включать node_modules, которые вам не нужны, в ваше окончательное приложение.Если вы поместите их в раздел devDependencies файла package.json, по умолчанию ни один из модулей, связанных с этими зависимостями, не будет скопирован в пакеты приложения.(Это поведение можно отключить с помощью флага --no-prune.)

На странице API Electronic-Packager о флаге --prune

Запускает менеджер пакетовкоманда для удаления всех пакетов, указанных в разделе devDependencies файла package.json, из выведенного приложения Electron.

...