Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
| electron [2025/01/05 20:54] – mirocow | electron [2025/02/14 16:11] (текущий) – mirocow | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | {{tag> | + | {{tag> |
| ====== Electron ====== | ====== Electron ====== | ||
| Строка 14: | Строка 14: | ||
| * [[tailwindcss]] | * [[tailwindcss]] | ||
| * [[CodeMirror]] | * [[CodeMirror]] | ||
| + | * [[vscode]] | ||
| ====== Electron + Webpack 4 + Babel 7 + React 16 + PostCSS + Sass + Ant Design + Jest + Enzyme + Eslint ====== | ====== Electron + Webpack 4 + Babel 7 + React 16 + PostCSS + Sass + Ant Design + Jest + Enzyme + Eslint ====== | ||
| Строка 169: | Строка 170: | ||
| } | } | ||
| ] | ] | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Сборка ==== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | $ esr --cache ./ | ||
| + | $ cross-env USE_HARD_LINKS=false electron-builder build --config electron-builder.config.js --dir | ||
| + | </ | ||
| + | |||
| + | esbuild.main.ts | ||
| + | <code javascript> | ||
| + | import esbuild from ' | ||
| + | import { builtinModules } from ' | ||
| + | import path from ' | ||
| + | |||
| + | import pkg from ' | ||
| + | |||
| + | interface Options { | ||
| + | mode?: ' | ||
| + | } | ||
| + | |||
| + | export default async function build(options: | ||
| + | // Код сборки | ||
| + | const mode = options.mode || ' | ||
| + | const __DEV__ = mode !== ' | ||
| + | const PORT = pkg.dev[' | ||
| + | |||
| + | const outdir = __DEV__ | ||
| + | ? path.join(__dirname, | ||
| + | : path.join(__dirname, | ||
| + | | ||
| + | const env: Record< | ||
| + | ? { | ||
| + | ' | ||
| + | `http:// | ||
| + | ), | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | } | ||
| + | : { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | }; | ||
| + | const preload = esbuild.build({ | ||
| + | entryPoints: | ||
| + | outfile: path.join(outdir, | ||
| + | target: ' | ||
| + | bundle: true, | ||
| + | platform: ' | ||
| + | sourcemap: true, | ||
| + | format: ' | ||
| + | external: [' | ||
| + | }); | ||
| + | const main = esbuild.build({ | ||
| + | entryPoints: | ||
| + | outfile: path.join(outdir, | ||
| + | bundle: true, | ||
| + | platform: ' | ||
| + | sourcemap: true, | ||
| + | format: ' | ||
| + | define: env, | ||
| + | external: [ // ? | ||
| + | ' | ||
| + | ' | ||
| + | ...Object.keys(pkg.dependencies), | ||
| + | ...Object.keys(builtinModules), | ||
| + | ], | ||
| + | }); | ||
| + | return Promise.all([main, | ||
| + | } | ||
| + | | ||
| + | // Build if ran as a cli script | ||
| + | const isMain = require.main === module; | ||
| + | |||
| + | if (isMain) { | ||
| + | const mode = | ||
| + | process.env.NODE_ENV === ' | ||
| + | build({ mode }); | ||
| } | } | ||
| </ | </ | ||