2017-06-15 31 views
0

我需要一个节点模块'html-pdf'来将html转换为PDF格式,以供我的电子应用使用。由于我使用ASAR打包我的代码,如果我在asar中打包html-pdf,我无法创建PDF,因为html-pdf在其中执行了一些写入操作,ASAR包是只读的。因此,我需要在创建包后将HTML-PDF模块手动放入资源文件夹中,然后创建安装程序。 我的使用案例:当自动更新应用程序时,我需要在创建安装程序之前手动复制粘贴html-pdf模块的任何新版本。 TLDR 我想在用户计算机中全局安装一个npm模块,并且即使我的应用程序已卸载,我也希望它能出现在他的电脑中。如何在安装电子应用的同时在全球最终用户的PC上安装节点模块?

回答

0

我不认为我会安装一个试图安静地安装全局模块的模块。我希望它在安装说明中告诉我这么做,或者在内部管理模块(本地安装)。正如我理解你的用例,它听起来并不像你真的需要它。如果仅在模块更新时才发生PDF更改,则只需将HTML转换为PDF作为构建过程的一部分,并将PDF文件保存在最终包中。

+0

事情是我不能打包html-pdf模块,因为asar(我不能让html-pdf在我的项目的node-modules文件夹内,因为它也与ASAR打包在一起)。所以我现在正在做的是,我手动将模块(html-pdf)复制到生成的包文件夹内的根目录(资源)。但每次更新我的应用程序时,我都需要在创建安装程序之前重复该过程。我注意到,“漫游”目录中的内容在应用更新时不会被删除。所以想着是否可以在第一次安装应用程序时在用户的“漫游”目录中安装'html-pdf'模块。 –

+0

我不是建议你这样做。我所说的是在你的构建机器上运行html-pdf将html文件转换为pdf并在使用ASAR打包之前将它们放置在资源中。你应该运行某种自动构建来完成所有这些工作(例如,grunt,gulp,webpack,无论如何),这可以让你无需付出多少努力即可添加步骤。 – Paul