一尘不染

找不到节点模块“ nw.gui”

node.js

这是我要运行的代码

//global.$ = $;

var abar = require('address_bar');
var folder_view = require('folder_view');
var path = require('path');
var shell = require('nw.gui').Shell;

这就是我得到的:

module.js:340抛出错误; ^

错误:找不到模块“ nw.gui”

at Function.Module._resolveFilename (module.js:338:15)

at Function.Module._load (module.js:280:25)

at Module.require (module.js:364:17)

at require (module.js:380:17)

at Object.<anonymous> (/home/parisa/Documents/nw-sample-apps-

master/file-explorer/main.js:6:13)

at Module._compile (module.js:456:26)

at Object.Module._extensions..js (module.js:474:10)

at Module.load (module.js:356:32)

at Function.Module._load (module.js:312:12)

at Function.Module.runMain (module.js:497:10) Program exited.

我无法获得此模块。我该怎么办?


阅读 470

收藏
2020-07-07

共1个答案

一尘不染

nw.gui是NW.js(以前称为node-webkit)模块。从代码的运行时环境中运行代码时,NW.js应该提供对它的访问。

通过错误消息的外观,我认为您是直接通过NodeJS运行文件的。要运行NW.js项目,您需要通过NW.js可执行文件(包括NodeJS)加载它。您可以按照“如何运行应用程序”页面中所述的几种方法进行操作:

找到包含package.json文件的项目文件夹。通过压缩整个文件夹,将文件扩展名更改为“ .nw”,然后运行以下命令来运行它:

nw /home/path/to/packagedapp.nw

或者,直接在文件夹上直接运行命令:

nw /home/path/to/appdir/

您可以为此创建快捷方式以使其更容易。最终,您可以将NW.js可执行文件与代码组合成一个可执行文件,请参阅如何打包和分发应用程序


也许您正在尝试nw.gui从“节点上下文”内部进行访问,而节点却抱怨找不到它。

NW.js中的Javascript可以在Node上下文中运行(就像在所有NodeJS全局变量中简单地在NodeJS中运行代码)或“ Browsercontext”(浏览器上下文)(也可以通过Window全局变量访问浏览器)一样。节点上下文只能访问节点内容,而浏览器上下文可以访问两者。

网页中包含的代码在浏览器上下文中运行,但是require()d的代码在节点上下文中执行。请参阅文档JavaScript上下文的差异

2020-07-07