Electron Packager - работа с относительными путями

Мне было интересно, как я буду работать с относительными путями в моем приложении при использовании электронного упаковщика.

В исходной папке моего приложения есть файлы json и другие файлы, на которые я ссылаюсь. При упаковке electronic-packager создает каталог \ resources \ app и помещает все эти файлы в этот каталог. Это означает, что любые относительные пути, которые я использую во время разработки, не работают в упакованном приложении.

Я попытался упредить это, создав папку \ resources \ app в моем исходном каталоге, надеясь, что упаковщик заметит их и просто переместит их напрямую, но вместо этого он создал \ resources \ app \ resources \ app.


person George Kendros    schedule 17.09.2019    source источник


Ответы (1)


Мне удалось использовать __dirname вместе с upath для создания путей к ресурсам.

Мне нравится upath, а не path, потому что он имеет toUnix метод, который «заменяет окна \ на unix / во всех строковых параметрах и результатах».

var imgPath = upath.toUnix(upath.join(__dirname, "assets","welcome.png")); 
person spring    schedule 17.09.2019
comment
Но меняются ли они при упаковке? Моя проблема не обязательно в том, что я не могу получить доступ к пути - это то, что электронный упаковщик создает папки и перемещает файлы, поэтому относительные пути нарушаются при упаковке. - person George Kendros; 17.09.2019
comment
Дело в том, что электронный упаковщик создает папки и перемещает файлы, поэтому относительные пути разрываются при упаковке. Это не было моим опытом. Может быть, у меня другая структура каталогов. - person spring; 17.09.2019
comment
может быть. Для меня основной исполняемый файл, который создается, находится в корневой папке приложений, затем все ресурсы, которые ранее были в корневом каталоге, помещаются в папку / resources / app. - person George Kendros; 18.09.2019
comment
Спасибо, использование __dirname было той частью, которую мне не хватало. Эта переменная всегда будет указывать на правильный каталог. - person George Kendros; 20.09.2019