Недавно я создавал приложение Electron, которое располагалось в строке меню и использовало SQLIte3 для хранения данных напоминаний. Мой партнер и я создавали это для проекта в Школе программного обеспечения и дизайна Тьюринга, и мы действительно хотели использовать процесс сборки, предварительно встроенный в CLI. К сожалению, у нас было всего около полдня, чтобы понять, как выполнить эту задачу, и мы не добились успеха. Согласно документам и просмотру файлов, созданных CLI, мы должны были иметь возможность выполнить npm run build:darwin для создания приложения, которое будет успешно работать в операционной системе Mac. С первой попытки сборка прошла успешно, но когда приложение было открыто, оно не смогло найти зависимости package.json, и приложение даже не запустилось. Одно большое будущее для этого CLI заключается в том, что сценарии npm позволяют вам очищать ваши сборки в одну строку. В противном случае это когда я начал рыскать в Интернете.

Первая проблема, с которой я столкнулся, заключалась в том, что кто-то забыл установить зависимости в app package.json и сделал это только в своем домашнем каталоге, и после того, как они установили оба приложения, их приложение заработало после его сборки. Я убедился, что я установил npm в обе папки с файлами package.json и запустил новую сборку, которая снова выдала ту же ошибку, которую я получал раньше. Я также обнаружил закрытую проблему, связанную с обновлением электронного упаковщика и неправильной компиляцией сборок. Я думал об изменении моей версии этого, установленного в проекте, но решил оставить это на крайний случай. Я продолжал искать другое решение и не мог его найти, поэтому начал копаться в файлах.

Просматривая файлы, казалось, что приложение правильно загружается и собирается, но не может загрузить модули узла из package.json в папке приложения. В файле config.js, на который ссылаются при сборке приложения, модули узлов в основных каталогах package.json пропускались, поэтому я удалил его, чтобы посмотреть, будут ли зависимые модули из этого файла загружаться в приложение при его сборке. После еще одной попытки сборки приложение действительно загрузилось, но оно ничего не отображало в нашем окне строки меню, и все, что мы видели, это цвет фона. Отсюда я попытался извлечь эту конфигурацию asar, чтобы иметь возможность открывать папки приложений и видеть, что создается в приложении. Казалось, что все было на месте, но оно не подключалось к компонентам, которые должны были отображаться внутри окна.

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