【问题标题】:How to install node module in end users pc globally while installing electron app?安装电子应用程序时如何在全球最终用户电脑中安装节点模块?
【发布时间】:2023-03-03 15:05:01
【问题描述】:

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

【问题讨论】:

    标签: node.js npm electron squirrel.windows


    【解决方案1】:

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

    【讨论】:

    • 问题是我无法打包 html-pdf 模块,因为 asar(我不能让 html-pdf 在我的项目的 node-modules 文件夹中,因为它也与 ASAR 一起打包)。所以我现在要做的是,我手动将模块(html-pdf)复制到生成的包文件夹内的根目录(资源)。但是每次我更新我的应用程序时,我都需要在创建安装程序之前重复这个过程。我注意到“漫游”目录中的内容不会在更新应用程序时被删除。所以在想我是否可以在第一次安装应用程序时在用户“漫游”目录中安装“html-pdf”模块。
    • 我不建议你这样做。我所说的是在您的构建机器上运行 html-pdf 以将 html 文件转换为 pdf 并在使用 ASAR 打包之前将它们放置在资源中。您应该运行某种自动构建来完成所有这些工作(例如 grunt、gulp、webpack 等等),这样您就可以毫不费力地添加步骤。
    猜你喜欢
    • 2020-03-10
    • 2018-07-08
    • 2017-07-25
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多