当前位置: 首页 > 面试题库 >

如何使用Node.js解决“找不到模块”错误?

左丘繁
2023-03-14
问题内容

从GitHub提取模块并按照说明进行构建后,我尝试使用以下方法将其拖入现有项目:

> npm install ../faye

这似乎可以解决问题:

> npm list
/home/dave/src/server
└─┬ faye@0.7.1
  ├── cookiejar@1.3.0
  ├── hiredis@0.1.13
  └── redis@0.7.1

但是Node.js找不到模块:

> node app.js
node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'faye'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)

我真的很想了解这里发生的事情,但是对于接下来的去向我有些茫然。有什么建议?


问题答案:

使用仅npm install将模块安装到当前目录中(在名为的子目录中node_modules)。app.js位于下面home/dave/src/server/吗?如果不是,并且您想从任何目录使用该模块,则需要使用进行全局安装npm install -g

我通常在本地安装大多数软件包,以便它们与我的项目代码一起签入。

更新(8/2019):

如今,您可以使用package-lock.json文件,该文件在npm修改您的node_modules目录时自动生成。因此package- lock.json,您可以省去签入包,因为它们会跟踪您当前正在使用的node_modules的确切版本。要从安装软件包,package- lock.json而不要package.json使用命令npm ci

更新(3/2016):

我收到了很多回应,特别是我签入了我的代码所依赖的软件包。几天前,有人取消发布他们的所有软件包(https://kodfabrik.com/journal/i-ve-
just-liberated-my-modules
),这破坏了React,Babel和其他所有东西。希望现在很清楚,如果您具有生产代码,则不能依赖NPM来真正为您维护依赖项。



 类似资料:
  • 我已经处理这个错误很长时间了,我尝试了很多方法,但都没有奏效。我在下面列出了我尝试过的方法。请不要再推荐它们。谢谢 我尝试过的方式 cd ios-

  • 我正在尝试创建一个JupyterLab扩展,它使用typescript。 我已经成功地添加了包“@类型/节点”,允许我使用诸如“要求”(“超文本传输协议”)这样的包。 但一旦我尝试使用子进程,使用“require”(“child_process”),我在尝试构建扩展时就会出现以下错误。 我在谷歌上搜索过,但仍然不知道如何解决这个问题。 如有任何提示或信息,将不胜感激。 我的包裹。json文件。

  • 问题内容: 我写了我的第一个node.js应用程序,但是找不到快速库: 但是express已安装(带有密钥): 一些信息: 我怎么解决这个问题?( 必须 安装时不带吗?) 问题答案: 您需要在本地将Express安装到应用程序(文件夹)的上下文中: 原因是应用程序总是在其本地上下文中查找任何依赖项。全局安装仅用于设置系统范围内的可用二进制文件,例如单元测试运行程序或引导程序或类似的东西。 使用Ex

  • 问题内容: 我正在经历我的第一个node.js项目。我已经安装了mongodb,有一个server.js文件,当我尝试运行它时,出现此错误 我很确定我已经安装了mongodb,我是来自C#Windows背景的UNIX新手,但是我认为这是未正确配置的路径吗? 问题答案: 您收到的错误表明MongoDB的NPM软件包未正确安装。 此处的解决方法取决于您计划如何利用NPM。NPM软件包管理器的操作具有两

  • 我已经在Ubuntu11.10x64上通过源代码编译安装了最新的node.js(0.8.15)。