gpt4 book ai didi

javascript - 在 node-webkit 应用程序之外需要/运行 JavaScript

转载 作者:行者123 更新时间:2023-11-30 05:39:13 24 4
gpt4 key购买 nike

假设我有以下应用程序结构:

outer-folder/
├── my-app/
└── settings.js

其中 my-app/ 是包含 package.json 的未构建目录 打包的应用程序 my-app。 exemy-app.app

我无法将 settings.js 与我的应用程序的其余部分打包在一起,因为我希望该文件可供用户编辑,并在启动时加载以配置我的应用程序。此外,我计划允许 settings.js 驻留在任何地方(例如,在用户的主目录中)并且可以从那里加载。

当应用程序未构建时,这可以正常工作。我只是有一个文件的相对路径和 require() 它像往常一样。但是当应用程序构建时(使用 grunt-node-webkit-builder 如果这有所不同)这失败了,我得到了可怕的“找不到模块”错误。

我已经搜索了 node-webkit wiki,但找不到关于这个问题的任何信息,我是不是遗漏了什么? 从打包的 node-webkit 应用程序加载和运行外部 JavaScript 文件的最佳方式是什么,就像使用 require() 所做的那样?

最佳答案

我建议您使用应用程序数据路径。请参阅文档 here

一个例子

var gui = require('nw.gui');
var path = require('path');
var yaml = require('js-yaml');
var fs = require('fs');

var confPath = path.join(gui.App.dataPath, 'conf', "dev-conf.yml");
try {
conf = yaml.load(fs.readFileSync(confPath, 'utf-8'));
} catch (err) {
throw new Error("Cannot read or parse configuration file '"+confPath+"': "+err);
}

将代码和配置分开是一个很好的做法,App.dataPath针对用户应用程序数据中的应用程序特定文件夹(每个操作系统不同)。

我通常使用安装程序将我的配置文件复制到其中。

下一个提示:我更喜欢使用 YAML 而不是 JSON 进行配置或设置,因为它允许您在文件中插入注释。

关于javascript - 在 node-webkit 应用程序之外需要/运行 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21746570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com