我在node-webkit应用程序中加载节点模块时遇到问题。
例如模块usb
(https://npmjs.org/package/usb)。
它已从npm(npm install usb --save-dev
)成功安装并在简单的Node.js中运行,nw-gyp
已成功重建,以便在node-webkit中使用。
我的node_modules
中没有包含app.nw
文件夹,因此在使用grunt构建后,我有以下文件结构:
当我尝试在我的应用程序中加载此模块时,使用以下代码:
var usb = require('usb');
我收到错误
Error: Cannot find module 'usb'
为什么node-webkit无法加载此模块?
P.S。所有默认模块(如path
,url
,http
都可以使用。
答案 0 :(得分:0)
就我而言,问题有两个原因:
如果我想使用在C ++上编写的节点模块,我无法为我的应用程序自定义名称(在我的情况下' app'),我应该使用默认名称' NW&#39 ;. https://github.com/rogerwang/node-webkit/wiki/Using-Node-modules#3rd-party-modules-with-cc-addons
据我所知,无法将模块从外部文件夹“node_modules”中加载到appliacation中。使用功能'要求'
答案 1 :(得分:0)
您是否尝试过使用模块源代码的绝对路径? (通常可以从GitHub或简单的谷歌搜索获得)
例如,如果要从绝对路径加载adm-zip模块:
var AdmZip = require(pathToModuleSource + "/adm-zip");
答案 2 :(得分:0)
将权限添加到package.json
"permissions": [
"usb",
],