ASAR对节点API的限制:生成子进程

时间:2016-04-26 22:07:03

标签: node.js electron asar

我目前正在开发一种电子应用,它在某些时候可以将HTML文件转换为PDF文件。为此,我使用基于html-pdf的本机节点模块phantomjs

当应用程序未打包但在 asar 下时,它运行良好,有未捕获的异常,因为html-pdf无法生成子进程。

堆栈错误

internal/child_process.js:302 Uncaught Error: spawn ENOTDIR

exports._errnoException @ util.js:890
ChildProcess.spawn @ internal/child_process.js:302
exports.spawn @ child_process.js:379
PdfExec @ /Users/graphfx/html2pdf/html2pdf.asar/node_modules/html-pdf/lib/…:87
PdfToFile @ /Users/graphfx/html2pdf/html2pdf.asar/node_modules/html-pdf/lib/…:83
convert @ index.html:35
onclick @ index.html:19

我认为这是由于 asar Limitations on Node API,但由于 260字符路径长度,我确实需要在 asar 中打包我的应用在Windows上限制

我在构建 asar 包时尝试使用选项--unpack-dir 'node_modules',但问题仍然存在。

重现错误

git clone https://github.com/Graphfx/html2pdf
cd html2pdf
npm install
npm run asar-pack
npm run start-asar

有人知道如何解决这个问题吗?

0 个答案:

没有答案