Перейти к содержимому

Пути, токены MP_HOME и переменные окружения в приложениях

Токен Раскрывается в
{MP_HOME} Портативный режим: папка с moonpool.exe (папка .moonpool\). Установленная версия в Windows: %USERPROFILE%\.moonpool. Linux: $XDG_CONFIG_HOME/Moonpool, иначе ~/.config/Moonpool, та же папка, что и {MP_DATA}.
{MP_DATA} Папка конфигурации, в которой лежит apps.json.

Токен, который не удаётся разрешить, остаётся как написан.

Поле Токены Ведущий ./ или .\
cwd да да, привязывается к {MP_HOME}
command да нет
stopCommand да нет (выполняется в cwd, который привязан)
url да нет
icon да да, привязывается к {MP_HOME}
значения env, processName, note нет нет

Относительный путь без ./ (например, apps\tool) не меняется и разрешается относительно рабочей папки самого Moonpool, что редко бывает нужно. Лучше использовать ./ или токен.

./apps/notes anchored to {MP_HOME}
{MP_HOME}\apps\notes\notes.exe token
{MP_DATA}\dumps token
apps\tool left alone, resolves against Moonpool's working folder
apps.json
{ "id": "notes", "name": "Notes", "group": "Desktop apps", "type": "desktop",
"cwd": "./apps/notes",
"command": "{MP_HOME}\\apps\\notes\\notes.exe",
"processName": "notes" }

Обе формы продолжают работать при перемещении портативной папки. Фиксированный путь, например C:\tools\notes, с папкой не переезжает. В портативном режиме диалог «Изменить приложение» помечает абсолютные значения cwd и url значком «не переносимо». См. Портативный режим.

env - это объект со строками. Диалог редактирует его как по одной KEY=VALUE в строке; он делит каждую строку по первому =, обрезает пробелы с обеих сторон и игнорирует строки без него.

В диалоге:

PORT=8091
NODE_ENV=development

В apps.json, как ключ env записи:

apps.json (one entry)
{ "id": "habits", "name": "Habits", "group": "Web apps", "type": "web", "command": "python app.py",
"env": { "PORT": "8091", "NODE_ENV": "development" } }
  • Запущенная команда наследует окружение Moonpool плюс env. Записи в env имеют приоритет.
  • env также применяется к stopCommand.
  • Значения используются как написаны: Moonpool не раскрывает в них ни {MP_HOME}, ни %VAR%.
  • Moonpool направляет собственный WebView2 в закрытую папку профиля через WEBVIEW2_USER_DATA_FOLDER. Запущенные приложения эту переменную не наследуют. Если вы задали переменную сами до запуска Moonpool, они получают ваше значение; иначе она не задана. Запись в env всё же может её переопределить.

Команда и stopCommand выполняются в cwd. Если cwd не указан, команда выполняется в рабочей папке самого Moonpool, поэтому задавайте cwd для всего, что использует относительные пути.

Moonpool: бесплатное программное обеспечение от FasterDB