Бонус: начислена 1 монета за дневную активность. Сейчас у вас 1 монета

Как уменьшить размер проекта Js Electron ? кратко

Лекция



Js Electron это framework для создания кроссплатформенных настольных приложений с использованием JavaScript, HTML и CSS.

но часто после сборки прокта размер его становиться больше иходного, рассмотрим какие пусти и спосбы уменьшения его ращмера.

Чтобы уменьшить размер проекта JavaScript Electron, нужно уменьшать не исходники, а итоговую сборку: dist, .exe, .AppImage, .dmg, .deb и т.д.

Как уменьшить размер проекта Js Electron ?

1. Проверь, что попадает в сборку

Частая проблема: в билд попадают лишние папки:

node_modules
src
tests
docs
.git
screenshots
coverage
.env

В electron-builder нужно явно указать files.

Пример package.json:

{
  "build": {
    "files": [
      "dist/**/*",
      "main.js",
      "package.json"
    ],
    "extraResources": [
      "assets/**/*"
    ]
  }
}

Таким образом, в приложение класть только нужные файлы.

2. Исключи лишние файлы

{
  "build": {
    "files": [
      "dist/**/*",
      "main.js",
      "package.json",
      "!**/*.map",
      "!**/*.md",
      "!**/test/**",
      "!**/tests/**",
      "!**/__tests__/**",
      "!**/.git/**",
      "!**/coverage/**",
      "!**/screenshots/**"
    ]
  }
}

Особенно часто много весят:

*.map
docs
examples
tests
screenshots
large images

3. Используй production-зависимости

Перед сборкой:

npm install --omit=dev

Или проверь, что большие библиотеки не лежат в dependencies, если они нужны только для разработки.

Например, это должно быть в devDependencies:

{
  "devDependencies": {
    "vite": "...",
    "webpack": "...",
    "eslint": "...",
    "typescript": "...",
    "electron": "..."
  }
}

А не в dependencies.

Важно: сам electron обычно не должен попадать внутрь dependencies приложения как runtime-библиотека.

4. Собирай frontend через Vite / Webpack

Не клади весь src в Electron-приложение.

Правильно:

src/          ← исходники
dist/         ← минифицированный frontend
main.js       ← main process

Сборка:

npm run build
electron-builder

Например:

{
  "scripts": {
    "build": "vite build",
    "dist": "npm run build && electron-builder"
  }
}

5. Удали source maps

Source map-файлы часто большие:

app.js.map
vendor.js.map

В Vite:

export default {
  build: {
    sourcemap: false
  }
}

В Webpack:

module.exports = {
  devtool: false
}

6. Проверь размер зависимостей

Команда:

du -sh node_modules/*

Или удобнее:

npx cost-of-modules

Большие зависимости можно заменить.

Например:

moment.js → dayjs
lodash целиком → lodash-es или отдельные функции
axios → fetch

Плохо:


 
import _ from 'lodash';

Лучше:

import debounce from 'lodash/debounce';

7. Используй asar

Для electron-builder:

{
  "build": {
    "asar": true
  }
}

Это не всегда радикально уменьшает размер, но делает приложение компактнее и аккуратнее.

8. Не храни тяжелые ассеты внутри приложения

Если внутри есть:

video
large images
3D models
PDF
audio

варианты:

сжать
загружать с сервера
выносить в отдельный пакет
использовать lazy loading

Изображения можно сжать:

npx imagemin assets/* --out-dir=assets-optimized

9. Для Windows не собирай лишние архитектуры

Если тебе нужен только x64:

electron-builder --win --x64

А не сразу:

--x64 --ia32 --arm64

В package.json:

{
  "build": {
    "win": {
      "target": "nsis"
    }
  }
}

10. Проверь unpacked-папку

После сборки смотри:

dist/win-unpacked
dist/linux-unpacked
dist/mac

И проверь размер:

du -sh dist/*
du -sh dist/win-unpacked/*

Так можно быстро понять, что именно раздувает приложение.

Минимальный хороший пример electron-builder

{
  "main": "main.js",
  "scripts": {
    "build": "vite build",
    "dist": "npm run build && electron-builder"
  },
  "build": {
    "asar": true,
    "files": [
      "dist/**/*",
      "main.js",
      "preload.js",
      "package.json",
      "!**/*.map",
      "!**/*.md",
      "!**/test/**",
      "!**/tests/**",
      "!**/__tests__/**",
      "!**/coverage/**"
    ],
    "directories": {
      "output": "release"
    }
  }
}

Главное

Обычно размер Electron-проекта уменьшают так:

1. Собрать frontend в dist
2. В files указать только dist, main.js, preload.js, package.json
3. Исключить tests, docs, source maps
4. Перенести dev-пакеты в devDependencies
5. Проверить тяжелые node_modules
6. Включить asar

Сам Electron все равно весит довольно много, поэтому даже пустое приложение может быть десятки мегабайт. Но лишние файлы и зависимости часто добавляют еще сотни мегабайт.

создано: 2026-05-10
обновлено: 2026-05-11
1



Помог ли вам этот ответ?
Нажмите оценку и напишите коротко почему. Так мы сможем сделать следующие ответы точнее и полезнее.
Насколько вы довольны ответом?
Ваш отзыв напрямую влияет на качество следующих подсказок и ответов.


Поделиться:
Пожаловаться

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выполнения задания
  • Возможно применение функции гаранта на сделку
  • Приоритетная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можете продать (как исполнитель) или купить (как заказчик) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно применение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии

Оставить комментарий

Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Лекции и учебник по "Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) "

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)