Node.js找不到安装的模块

在将我的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。 那么为什么我的应用程序无法find它? 我究竟做错了什么?

该模块也可能需要在本地安装。

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

 npm install --save xmlhttprequest 

在你的repo目录下次你的switch机器的时候,可以运行npm install来检索所有的依赖关系。

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

你是什​​么意思

手动安装所有的依赖关系?

通常,我们将通过npm install --savenpm install --save-dev来安装依赖关系,当我需要迁移到另一个环境时,我只需要克隆源代码并从项目的根目录中启动npm install ,它会为我做所有的魔术。

有时如果你使用的包是c ++插件,会有问题,如果你使用的节点版本与你的开发环境和产品环境不一样,那么安装失败,请小心。 我通常使用nvm作为我的节点版本pipe理, nvmw的窗口,这可以节省我很多时间。