Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
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 }); | ||
} | } | ||
</ | </ |