在创建nw.js可执行文件时苦苦寻找当前目录。
我创建了一个混合了html和Javascript以及很多node.js模块用法的Mac服务器应用程序。我有两个服务器访问的xml文件,它们与应用程序位于同一个文件夹中。
当我按如下方式运行应用程序时: ./nwjs.app/Contents/MacOS/nwjs。 并找到当前目录,如下所示: var workingFolder = process.cwd(); 那么我的工作文件夹就是应用程序和xml文件所在的文件夹。
但是,如果我遵循'包和分发'指南(创建.nw文件,将其命名为app.nw,并放入内容/资源),然后运行.app可执行文件,我得到以下内容作为工作文件夹: /private/var/folders/3x/2hq40kzs59q8gj6yfn4ktj940000gn/T/.io.nwjs.nw.HcwnF2
我认为上下文发生了变化。所以我一直在寻找获取当前目录的替代方案。我试过了: var workingFolder = global .__ dirname; 并得到了相同的结果。然后: var workingFolder = process.env.PWD; 并且未定义(虽然这适用于'unpackaged'版本)
如何获取当前目录?
任何想法都会非常感激!
答案 0 :(得分:1)
Node-Webkit将* .nw文件提取到临时目录,以便临时目录是当前工作目录。您可以使用并排打包(将package.json文件和nw.exe放在同一文件夹中而不压缩)方法,以将工作目录保存到nw和package.json文件所在的文件夹中。您可以使用以下内容获取当前路径
var path = require('path');
var nwPath = process.execPath;
var nwDir = path.dirname(nwPath);
答案 1 :(得分:0)
对于Windows使用:var path = require('path'); path.dirname(process.execPath);
对于Mac和Linux使用:global.__dirname;