Electron-Forge, как указать исходный каталог для упаковки?
Я установил приложение create-Reaction-app с приложением Electron-Forge, и теперь мне нужно как-то указать папку сборки, созданную из CRA для упаковки. Эта папка также должна быть подана.
Будет ли такое возможно с помощью электронной кузницы?
3 ответа
Насколько я понимаю, вы спрашиваете, как указать Electron-Forge, в каком каталоге искать исходные файлы для упаковки приложения.
Если это так, см.: https://github.com/electron-userland/electron-packager/blob/master/docs/api.md
где он описывает варианты
"config": {
"forge": {
объект в вашем файле package.json
внутри них есть этот объект конфигурации пакета:
"electronPackagerConfig": {
"dir": "./src",
где вы можете указать исходную папку.
Кроме того, кстати: там вы можете указать файлы / файловые регулярные выражения, которые будут игнорироваться в упаковке:
"ignore": [".idea", ".gitignore"]
В electronic-forge нет возможности указать входную папку (будет использоваться корневая папка проекта):
- Указать
ignore
возможность пропускать папки/файлы; - Использовать
main
ключ в package.json, чтобы указать правильный сценарий запуска.
Например, package.json для проекта vue:
{
"name": "project",
"version": "1.0.0",
"main": "index.js",
...
"config": {
"forge": {
"packagerConfig": {
"ignore": [
"^/[.]vs$",
"^/public$",
"^/src$",
"^/[.]browserslistrc$",
"^/[.]editorconfig$",
"^/tsconfig[.]json$",
"[.](cmd|user|DotSettings|njsproj|sln)$"
]
},
...
}
},
...
}
На самом деле вы можете указать исходную папку только в аргументе скрипта (предположим, что /src — это папка с файлами для упаковки):electron-forge package ./src
Эта исходная папка должна содержать package.json с данными, необходимыми для упаковки вашего проекта. Если package.json не найден или он не соответствует требованиям , Electron-Forge перейдет в папку с соответствующим package.json и предположит, что это настоящая папка проекта. Как я нашел в источниках Electronic-Forge, нужны как минимум такие данные:
{
name: cfg.name,
version: cfg.version,
author: cfg.author,
main: "main.js",
devDependencies: {
electron: cfg.devDependencies.electron,
"@electron-forge/cli": cfg.devDependencies["@electron-forge/cli"]
},
config: {
forge: "../forge.config.js"
}
}
В моем проекте я создаю этот package.json с помощью скрипта и использую свой основной package.json какcfg
в приведенном выше примере для предоставления данных. Также вы можете указать конфигурацию forge как путь к вашему forge.config.js, чтобы избежать ее дублирования.
Также имейте в виду, что Electron-Forge будет упаковывать файлы/каталоги только в эту папку , поэтому ни node_modules, ни другие внешние ресурсы не будут включены. Поэтому вам нужно либо создать пакет вашего проекта с помощью webpack, esbundle и т. д., либо быть осторожным с зависимостями и предоставить его для упакованного приложения.