Создание папок с помощью Electron JS

Я использую Electron и Electron Forge для создания настольного приложения для загрузки. В режиме отладки npm start я могу без проблем создавать папки. После упаковки проекта и запуска .dmg в OSX я получаю сообщение об ошибке, когда приложение создает папку.

Ошибка -

Неперехваченное исключение: Ошибка: ENOENT: нет такого файла или каталога, mkdir '/ Users / folder / dl2 / test2' в Error (native) в Object.fs.mkdirSync (fs.js: 922: 18)

Код для создания папок

if (!fs.existsSync(dirpath)) {
   fs.mkdirSync(path.dirname(dirpath), { recursive: true });
}

Ответил Беллоу


person wnordmann    schedule 17.09.2019    source источник
comment
Можете ли вы вывести и сравнить содержимое dirpath в ваших отладочных и рабочих приложениях. Это может отличаться от того, что вы ожидаете от производства.   -  person andypotato    schedule 18.09.2019
comment
Вы имеете в виду значение переменной dirpath, они совпадают. Я использую диалоговое окно для выбора папки. Ни отладка, ни соблюдение не требуют пути к приложениям   -  person wnordmann    schedule 18.09.2019


Ответы (1)


Оказывается, проблема в узле, ответ я нашел здесь - https://github.com/nodejs/node/issues/27293

Я использовал следующий блок

function mkdirp(dir) {
  if (fs.existsSync(dir)) { return true }
  const dirname = path.dirname(dir)
  mkdirp(dirname);
  fs.mkdirSync(dir);
}
mkdirp(dirpath);
person wnordmann    schedule 18.09.2019