首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让电子构建器为安装程序打包非代码文件,以便将它们安装在用户主目录(app-data)中

如何让电子构建器为安装程序打包非代码文件,以便将它们安装在用户主目录(app-data)中
EN

Stack Overflow用户
提问于 2020-08-05 17:23:23
回答 1查看 4K关注 0票数 10

我想要做的是:

我想了解如何配置电子生成器/Webpack来打包非代码文件(配置文件、XML文件、元数据文件、JSON文件),以便当安装程序安装应用程序时,这些文件将保存在本地计算机上的用户主目录中。我认识到将这些文件存储在已安装的二进制文件之外的重要性,因此当用户更新其版本时,它们不会丢失任何可能具有安装程序的自定义。但是这些文件的初始版本必须存在于某个地方,比如这些文件的模板版本。

我发现了一些教程,它们解释了如何将这些非代码文件作为包的一部分:电子-如何添加外部文件?

如何管理Webpack/电子应用的配置?

但是,我从这些帖子中看不到或理解的是如何配置安装程序,以便在它运行时,这些文件将被复制到用户主目录(appData文件夹)。特别是,如果已经安装了这些文件,以避免重写它们,或者询问用户是否想重写它们?那是怎么安排的?

此外,还必须有一些配置设置,以允许这些文件保留在Github中,并使开发人员能够对这些非代码文件使用dev-path,同时在用户安装的版本上不破坏这些文件的生产路径。如何设置这样的配置?

这是我的项目的文件夹结构:

代码语言:javascript
复制
src
 - Application
    - electronVueJS-App
       - application.js
       - App.vue
       - build.js
       - registerServiceWorker.js
       - ...Rest of the files/folders for the application....
       - Resources
          - Configuration
             - Colors.csv
             - Configuration.xml
 - Framework
    - CommandsBlob
       - commands.xml
    - Workflows
       - workflows.xml
    - ....Rest of my code files/folders....

我想第1步可能会让我将所有的非代码XML文件移动到至少2个文件夹中,一个在Application文件夹中,另一个在Framework文件夹中,我准备这样做,但我想了解所有这些电子生成器/WebPack/Installer配置是如何设置的,以便在我重新构造我的应用程序代码之前将配置文件安装在他们本地系统的用户主目录路径中。

我想还有其他的问题,但我想我可以试着分别解决这些问题,如果我碰到了另一个阻滞剂,然后提交另一个问题。但是如果你有可以帮助我的链接,那就请分享吧。

设置自动更新程序后,如何告知用户某个特定更新是否需要中断对其配置文件的更改。

如何设置uninstall,以便用户在卸载过程后可以选择保持配置文件完整,或者继续删除所有内容?

我的回购:https://github.com/SethEden/electronVueJS-App/

谢谢你的帮助!!

更新:

我已经清除了上述回购程序的代码库,并返回到一个非常基本的配置中,以尝试实现这一功能。我发现NSIS是为电子应用程序构建Windows安装程序的工具。我试着遵循这个教程:

https://youtu.be/QowWa3aVCQw

当我试图将NSIS构建目标添加到我的package.json中时,我从与VueJS相关的电子生成器中得到了一个错误,并告诉我将构建移动到Vue.config.js文件中。

所以我做了这个,现在我得到了这个错误:

代码语言:javascript
复制
(node:16532) UnhandledPromiseRejectionWarning:
Error: cannot find specified resource "LICENSE",
nor relative to "C:\electronVueJS-App\build",
neither relative to project dir ("C:\electronVueJS-App")

我甚至试图从我的vue.config.js文件中的构建定义中完全删除许可证,但是现在我的NSIS安装程序没有许可证。此外,更重要的是,如果我甚至不能在我的构建配置中指定一个NSIS许可文件,那么在我的构建中如何能够指定添加非代码文件呢?更重要的是,我将如何告诉NSIS将它们安装在用户AppData文件夹中,位于其本地安装的系统路径上?

有人能帮我弄清楚吗?我对被困在这个问题上感到很沮丧。

谢谢你和干杯~赛斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-21 18:40:17

假设您有一个user.config文件在src目录中,并且希望将它放在APPDATA目录中。

  1. 首先,您需要打包这个文件。可以这样做: “构建”:{ "extraFiles":{“从”:./src/user.config“,"to":”“}} 这将将user.config文件放置在打包源代码的根目录中。
  2. 现在,我们需要告诉安装程序将这个文件放在APPDATA目录中。为此,我们需要编写一个自定义nsis脚本。可以将此脚本放置在“生成”文件夹中。 “构建”:{ "extraFiles":{“从”:./src/user.config“,"to":".”},“nsi”:{“包括”:"build/installer.nsh“} installer.nsh的内容应该如下所示: !宏customInstall CreateDirectory $LOCALAPPDATA\(YOUR_APP_NAME)* CopyFiles $INSTDIR\user.config $LOCALAPPDATA\(YOUR_APP_NAME)*删除$INSTDIR\user.config!宏 阅读有关此这里的更多信息

此外,为了在源文件中获取APPDATA路径,您可以如下所示:

代码语言:javascript
复制
process.env.LOCALAPPDATA
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63270412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档