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

从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)

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

理查德西门Near2020/03/16 14:37:31
rm -rf node_modules
npm install
npm fund

我的工作。

SamJim2020/03/16 14:37:31

更改目录并指向您当前的项目文件夹,然后单击“ npm install”。

这会将所有依赖项和模块安装到您的项目文件夹中。

Tony小卤蛋2020/03/16 14:37:31

仅运行以下命令:

npm install

它将在node_modules文件夹中安装所有必需的模块

十三Itachi2020/03/16 14:37:31

如果软件包安装成功,请转到您的node_modules文件夹,然后检查文件和路径。然后导入。希望这可以帮助。

达蒙Jim斯丁2020/03/16 14:37:31

每次package-lock.json更改时,npm ci应在运行代码之前运行。假设代码以startnpm脚本开头,则npm ci可以使用以下prestartnpm脚本自动运行

{
  "scripts": {
    "prestart": "npx @olegjs/on-change --file package-lock.json npm ci"
  }
}

西门猴子2020/03/16 14:37:31

我得到了解决此问题的简单解决方案。

只需删除C:\ Users \ UserName \ AppData \ Roaming \ npm \

然后安装节点。

现在,您的问题将得到解决。

西里Tom2020/03/16 14:37:31

请安装新的CLI v3(npm install -g ionic @ latest)。

如果此问题仍然是CLI v3中的问题。谢谢!

LEY逆天Near2020/03/16 14:37:31

删除node / npm,然后重新安装稳定版本(不是最新版本)对我来说很有效。

sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

https://nodejs.org/en/download/
阿飞Pro2020/03/16 14:37:31

webpack与一起使用遇到此问题webpack-dev-middleware

已将一个文件变成一个文件夹

观察者似乎看不到新文件夹,并且该模块现在丢失了。

通过重新启动过程进行修复。

JinJinDavaidNear2020/03/16 14:37:31

就我而言,我曾UNMET PEER DEPENDENCY redux@^3.0.0导致此错误消息,请查看所有错误消息并使用--save重新安装缺少的模块

npm install redux --save
阳光小胖2020/03/16 14:37:31

当团队中的其他人package.json在SVN中更新时,我遇到了同样的问题仅仅删除node_modules目录没有帮助。我如何解决该问题是:

rm -rf node_modules
rm package.json
rm package-lock.json
svn up
npm install
ng build --env=prod

希望这对某人有帮助!

西里梅2020/03/16 14:37:31

如果您正在使用 TypeScript,并且在安装所有节点模块后出现错误,请删除package-lock.json然后运行npm install

小小Near阳光2020/03/16 14:37:31

如果要require处理的模块main的package.json中缺少或不正确的字段,则会遇到此错误尽管模块本身已安装,但是npm / node必须使用单个.js文件作为模块的入口点。如果该main字段不存在,则默认为index.js在模块的文件夹中查找如果模块的主文件称为index.js,它将无法使用require它。

在将browserify基于模块的模块转换为可支持CommonJS的require模块时发现;browserify不在乎丢失main字段,因此该错误已被忽略。

Near西里泡芙2020/03/16 14:37:30

专家提示:

在抵抗疲劳和轻度疾病时,我遇到了这个错误,因为我键入node blah而不是npm blah

收到的错误消息还不足以使我警惕自己的愚蠢!

Stafan樱2020/03/16 14:37:30

node_module从项目中删除您的根文件夹(例如myApp)。转到myApp文件夹,然后从终端输入以下命令

>myApp>npm install

它将安装项目所需的所有依赖模块。

老丝Jim2020/03/16 14:37:30

检查是否正确设置了环境变量NODE_PATH并指向node_modules路径。nodejs使用此变量搜索库

Green小哥Tom2020/03/16 14:37:30

我昨天遇到此错误。我花了一段时间才意识到其中的main条目package.json指向了我已移动的文件。一旦我更新,错误消失了,程序包正常工作了。

神乐JinJinEva2020/03/16 14:37:30

当第一次npm安装由于某种原因(npm的SIGINT)而崩溃,延迟时间过长或数据损坏时,就会发生这种情况再次尝试安装npm不会解决问题。

在npm第一次检查时出了点问题,因此最好的选择是删除文件并重新启动npm安装。

梅Davaid2020/03/16 14:37:30

对于TypeScript用户,如果要导入内置的Node模块(例如httppathurl),并且遇到诸如"Cannot find module "x"的错误,则可以通过运行来修复错误

npm install @types/node --save-dev

该命令会将NodeJS TypeScript定义导入您的项目,从而允许您使用Node的内置模块。

逆天乐樱2020/03/16 14:37:30

我有一个非常相似的问题。删除整个node_modules文件夹并重新安装对我有用:

rm -rf node_modules
npm install
乐樱2020/03/16 14:37:30

使用仅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://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.kq9s64clp),这破坏了React,Babel和几乎所有东西其他。希望现在很清楚,如果您具有生产代码,则不能依赖NPM来真正为您维护依赖项。