【问题标题】:Managing application settings in an Electron application在 Electron 应用程序中管理应用程序设置
【发布时间】:2017-03-01 23:56:23
【问题描述】:

我很想知道如何在 Electron 应用程序中管理应用程序设置?在管理用户设置方面,我在这里(例如Where to store user settings in Electron (Atom Shell) Application?)和其他地方找到了一些优秀的资源,但找不到与管理应用程序设置相关的任何内容。

对我来说,两者之间的区别在于应用程序设置可能因环境而异(开发/测试/生产),但对于应用程序的所有用户来说都是相同的。它们将包含 API 端点等内容。另一方面,用户设置会根据用户的偏好(如窗口宽度/高度等)因用户而异。

到目前为止我做了什么?

我找到了这个名为config 的优秀软件包,并开始在我的项目中使用它。根据说明,我创建了一个config 文件夹和一个默认配置文件(稍后我将创建环境特定的配置文件)。

只要我正在开发应用程序,它就可以正常工作。应用程序正在正确地从 config 文件夹中提取 default.json 文件并正确应用这些设置。

当我打包应用程序(MSI、DMG 等)时出现问题。为此,我正在使用electron-builder 包。

config 包的问题在于它在应用程序的当前工作目录中查找config 文件夹,并且因为它在安装应用程序的文件夹中没有找到它,所以它只是抛出一个错误。我什至尝试在我的app 文件夹中手动复制这个文件夹(这是 electron-builder 制作软件包的地方),但这也没有帮助。理想情况下,我想将应用程序设置捆绑在应用程序的 ASAR 文件中,这样它就不能被反编译。

我的问题是:

  • 人们如何管理 Electron 应用程序的应用程序设置?
  • 可以使用config NPM 包吗?或者有没有专门针对电子应用程序的包的替代方案?

【问题讨论】:

    标签: javascript node.js configuration electron electron-builder


    【解决方案1】:

    我没有使用 npm 包,但我的方法与您提到的类似。我有一个配置目录,其中包含不同环境的不同配置文件:dev、test、prod。然后在我的 package.json 中,我添加了特定于环境的构建命令。例如对于产品:

    "build-prod-config": "config/buildProdConfig.sh",
    "build-renderer-prod": "webpack --config=webpack.config.renderer.prod.js",
    "build-main-prod": "webpack --config=webpack.config.main.prod.js",
    "build-prod": "npm run build-prod-config && npm run build-main-prod & npm run build-renderer-prod",
    
    buildProdConfig.sh
    #!/usr/bin/env bash
    
    cp config/app.config.prod.js config/app.config.js
    echo "Copied ProdConfig to Config"
    
    //This is what a config file looks like
    const Config = {
      suppDataDirectoryPath: '/suppData/',
      builtFor: 'prod',
    }
    
    module.exports = Config;
    

    然后我在我的应用程序中需要 Config 并使用这些值。现在这是一件简单的事情,也许没有您链接到的配置包的灵活性,但它可以工作。

    另外,另一个重要的事情是我没有将我的应用程序打包到 ASAR 存档中,但我认为我的方法仍然有效,因为我使用 webpack 将所有内容打包到一个包中。

    【讨论】:

    • 谢谢你。让我试一试。我会回复我可能有的任何问题。
    • @GauravMantri 你找到解决这个问题的方法了吗?
    • @Lucky...我做到了...不过,它是基于公认的答案。让我把我们所做的作为答案。
    • 我有同样的问题here。但是我在构建过程中编写配置。我仍然对此感到困惑
    猜你喜欢
    • 2020-11-06
    • 2017-11-04
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    相关资源
    最近更新 更多