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

Среда настольного узла

Редактировать страницу

HagiCode Desktop поставляется с набором инструментов Node, управляемым с рабочего стола. Он не берет на себя глобальную установку Node на вашем компьютере. Его цель — предоставить запускаемым рабочим столам и процессам, связанным со средой выполнения, стабильную и проверяемую основу среды выполнения.

Прочтите этот FAQ, если увидите portable-fixed/toolchain в диагностике надо знать какие node Desktop использует или задается вопросом, почему версия Node вашей системы напрямую не определяет поведение рабочего стола.

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

Desktop описывает это более конкретно как изолированную среду выполнения Node/npm для управляемых интерфейсов командной строки вместо повторного использования общесистемной среды. Данная конструкция имеет следующие основные преимущества:

  • Последовательные версии: Desktop использует закрепленный контракт среды выполнения Node 22 вместо того, чтобы угадывать локальную основную версию пользователя.
  • Управляемые процессы запуска: команды, управляемые с рабочего стола, могут предпочитать упакованные node и npm записи.
  • Четкие границы конфигурации: конфигурация, связанная с интерфейсом командной строки, хранится отдельно от глобальной конфигурации на уровне хоста, поэтому обновления, переключение и восстановление с меньшей вероятностью будут нарушены из-за различий в системной среде.
  • Уменьшение конфликтов. Связанные пути применяются к командным средам, созданным Desktop, и не заменяют глобальный узел пользователя в его терминале.
  • Ненавязчивое поведение хоста: эта изоляция позволяет избежать записи состояния цепочки инструментов в существующую среду Node/npm пользователя, а удаление Desktop не нарушает работу Node, npm или конфигурации, уже присутствующей на компьютере.

Когда вы запускаете Desktop в обычном режиме, Desktop предпочитает набор инструментов Node, установленный вместе с приложением, вместо того, чтобы сначала считывать установку Node из вашей системы. Благодаря этому версия Node в вашем терминале будет отделена от версии Node, которую ожидает рабочий стол во время ее работы.

Когда включена связанная цепочка инструментов, командные среды, созданные Desktop, помещают пути к связанной цепочке инструментов в начале PATH. В результате, даже если в вашей системе установлена ​​другая версия Node, потоки, управляемые Desktop, сначала разрешаются в связанные Node и npm Desktop.

Это влияет только на среды выполнения, созданные Desktop. Если ты бежишь node, npmили другие команды непосредственно в системном терминале, они продолжают использовать обычную системную среду и конфигурацию оболочки.

В средах диагностики или дочерних процессов, запускаемых с помощью Desktop, вы можете увидеть такую переменную:

Окно терминала
HAGICODE_PORTABLE_TOOLCHAIN_ROOT=/path/to/portable-fixed/toolchain

Эта переменная означает, что среда выполнения, управляемая настольным компьютером, распознала корень встроенной цепочки инструментов. Наличие этого пути не означает, что Desktop изменил ваш системный узел; это всего лишь означает, что Desktop использует среду Node, поставляемую с приложением, в своей собственной области выполнения.

Где Desktop устанавливает управляемые пакеты npm

Заголовок раздела «Где Desktop устанавливает управляемые пакеты npm»

Desktop хранит файлы времени выполнения и изменяемые файлы пакетов npm в разных местах. Путь к связанной цепочке инструментов, например portable-fixed/toolchain/node является неизменяемым источником для управляемого настольным компьютером node и npm команды. Вместо этого управляемые глобальные пакеты устанавливаются в каталог пользовательских данных Electron:

userData/node22/npmGlobal

Если позже Desktop перейдет на Node 24, он будет использовать отдельное дерево пакетов, например userData/node24/npmGlobal. Пакеты, установленные для узла 22, остаются на диске, но не считаются установленными для узла 24, пока они не будут переустановлены в новый префикс Node-major.

Статус зависимости рабочего стола проверяет только активный userData/node<major>/npmGlobal префикс. Файлы пакетов за пределами этого префикса игнорируются управлением зависимостями.