为什么node.js不加载我需要的模块?

时间:2014-08-03 09:01:07

标签: javascript linux node.js

我在linux上安装了node.js,file.js。在同一目录中,我有node_modules目录和lru-cache模块。

file.js执行以下操作:

var lrucache = require('lru-cache')

但是当我运行它时,会引发以下错误:

Error: Cannot find module 'lru-cache'
    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> (/opt/file.js:58:12)
    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)

有什么问题?同样适用于其他Linux系统。

2 个答案:

答案 0 :(得分:1)

大多数节点模块都有自己的一组包依赖关系,因此您不能只复制文件夹或克隆存储库,而不必确保您满足模块的依赖关系。

最简单的方法是使用npm进行所有包安装。

在项目的根目录中运行npm init以设置package.json使用

$ npm install modulename --save

安装包及其依赖项。您现在可以安全地使用

var module = require('modulename');

整个项目。

如果您无法通过npm安装软件包,请确保通过导航到node_modules/modulename并在此处运行npm install(无参数)来安装所有依赖项。这将安装模块自己的package.json文件中列出的所有依赖项。

答案 1 :(得分:0)

请尝试:

rm -rf node_modules && npm cache clean && npm install

有时npm存在问题,并且依赖性lru-cache可能无法正确安装。