首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在节点-webkit应用程序中加载外部节点模块

如何在节点-webkit应用程序中加载外部节点模块
EN

Stack Overflow用户
提问于 2014-02-06 16:17:48
回答 3查看 4.4K关注 0票数 0

在我的节点-webkit应用程序中加载节点模块时,我遇到了问题。

例如,模块usb (https://npmjs.org/package/usb)。

它成功地安装在npm (npm install usb --save-dev)中,并在简单的Node.js中工作,并被nw-gyp成功地重新构建,用于节点-webkit。

我的app.nw中没有包含app.nw文件夹,所以在使用grunt构建之后,我有以下文件结构:

  • app.exe
  • nw.pak
  • ffmpegsumo.dll
  • icudt.dll
  • libEGL.dll
  • libGLESv2.dll
  • node_modules
    • usb
      • binding.gyp
      • package.json
      • ..。
      • 构建
        • 释放
          • usb_bindings.node
          • usb_bindings.lib
          • usb_bindings.bdb
          • usb_bindings.exp
          • obj
          • ..。

当我尝试在我的应用程序中加载这个模块时,使用以下代码:

代码语言:javascript
复制
var usb = require('usb');

我犯了个错误

代码语言:javascript
复制
Error: Cannot find module 'usb'

为什么节点-webkit不能加载这个模块?

附注:所有默认模块(如pathurlhttp )都能工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-17 13:55:16

就我而言,这个问题有两个原因:

  1. 如果我想使用写在C++上的节点模块,我不能给我的应用程序自定义名称(在我的例子中是' app '),我应该使用默认名称'nw‘。https://github.com/rogerwang/node-webkit/wiki/Using-Node-modules#3rd-party-modules-with-cc-addons
  2. 据我理解,不可能使用函数'node_modules‘从外部文件夹’node_modules‘将模块加载到应用程序中。
票数 1
EN

Stack Overflow用户

发布于 2015-05-12 10:20:40

您是否尝试过使用绝对路径访问模块的源代码?(通常可以从GitHub或简单的Google搜索中获得)

例如,如果您想从绝对路径加载adm-zip模块:

代码语言:javascript
复制
var AdmZip = require(pathToModuleSource + "/adm-zip");
票数 0
EN

Stack Overflow用户

发布于 2020-10-16 00:44:29

在您的package.json中添加许可

代码语言:javascript
复制
    "permissions": [
        "usb",
    ],

permissions#usb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21608255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档