Node.js找不到已安装的模块

时间:2015-08-02 21:10:58

标签: javascript node.js npm

将我的node.js应用程序部署到另一台PC(在开发机器中运行完美)并手动安装所有依赖项后,我在尝试执行时遇到此错误:

    C:\Users\myself>node app.js
module.js:340
    throw err;
    ^

Error: Cannot find module 'xmlhttprequest'
    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> (c:\Keystroke\node_modules\socket.io\node_modules\socket.io-client\node_modules\engine.io-client\lib\transports\index.js:5:22)
    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 Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (c:\Keystroke\node_modules\socket.io\node_modules\socket.io-client\node_modules\engine.io-client\lib\socket.js:5:18)

但如果我跑

npm ls -g

它返回全局安装的模块列表,它包含xmlhttprequest。那为什么我的应用程序无法找到它?我做错了什么?

2 个答案:

答案 0 :(得分:11)

该模块可能还需要为项目安装本地

你有一个package.json文件吗?如果是,请运行:

npm install --save xmlhttprequest

下次在您的repo目录中,所以当您的交换机运行时,您可以运行npm install来检索所有依赖项。

某些依赖项在计算机上全局安装时无用。

答案 1 :(得分:1)

是什么意思

  

手动安装所有依赖项?

通常,我们会按npm install --savenpm install --save-dev安装依赖项,当我需要迁移到另一个环境时,我只需克隆源代码并从根目录激活npm install该项目,它将为我带来所有的魔力。

如果您使用的软件包是c ++插件,有时会出现问题,如果您使用的节点版本与开发环境和产品环境不同,则无法安装,请注意。我通常使用nvm作为我的节点版本管理,nvmw用于Windows,这可以节省很多时间。