Я создаю настольное приложение, построенное на Electron с AngularJS. При разработке с использованием npm start
этот модуль (epub-gen
) работает как задумано и создает файл epub в каталоге. Но после упаковки в производственную сборку выдается следующая ошибка: Error: ENOTDIR, not a directory
.
Возможно, это несовместимость с angular или чем-то еще, и мне нужна помощь в исправлении этой ошибки.
Я импортирую модуль узла в сервис angular следующим образом: const epubGen = (<any>window).require('epub-gen');
. Это работает перед сборкой для производства и впоследствии завершается неудачей.
Но когда я импортирую модуль следующим образом: import epubGen from 'epub-gen';
, он начинает выдавать ту же ошибку еще до того, как его собирают для производства.
Похоже, проблема возникает, когда модуль узла пытается использовать fs.mkdirSync()
в своем index.js
.
Полный журнал:
Error: ENOTDIR, not a directory
at createError (electron/js2c/asar.js:116)
at Object.fs.mkdirSync (electron/js2c/asar.js:686) <== [Error Location]
at EPub.generateTempFile (index.js:232)
at EPub.render (index.js:193)
at new EPub (index.js:183)
at LibraryService.<anonymous> (library.service.ts:67)
at step (home.module.ts:13)
at Object.next (home.module.ts:13)
at fulfilled (home.module.ts:13)
at ZoneDelegate.invoke (zone.js:396)
at Object.onInvoke (core.js:27465)
at ZoneDelegate.invoke (zone.js:395)
at Zone.run (zone.js:153)
at zone.js:894
at ZoneDelegate.invokeTask (zone.js:431)
at Object.onInvokeTask (core.js:27453)
at ZoneDelegate.invokeTask (zone.js:430)
at Zone.runTask (zone.js:198)
at drainMicroTaskQueue (zone.js:611)
Примечание. После сборки в качестве производственного приложения fs
изнутри мое приложение Angular может обращаться к файлам и каталогам и создавать их без проблем, но этот модуль не может. Может быть, это потому, что модуль узла делает это извне приложения Angular, и если да, есть ли обходной путь?
Мой package.json