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

我真的很想了解这里发生了什么,但我有点不知所措,不知道下一步该去哪里。有什么建议吗?


当前回答

rm package-lock.json
rm -r node_modules
npm i

这将解决问题并安装所有软件包。

其他回答

显然,从这个问题来看,有很多可能的原因。

也许这会对某人有所帮助,希望没有人像我一样愚蠢地使用这种技术:

检查文件夹树中是否有node_modules文件夹。

场景1:如果您有一个项目文件夹,在多个项目之间共享了node_modules文件夹,那么您可能没有遇到任何问题

|- projects
| |- node_modules     <- OK
| |- project1         <- No node_modules folder
| | |- package.json
| |- project2         <- No node_modules folder
| | |- package.json

场景2:如果添加不同性质的第三个项目,则可以选择在该项目中保留node_modules文件夹:

|- projects
| |- node_modules     <- Can be used by project 3
| |- project1         <- No node_modules folder
| | |- package.json
| |- project2         <- No node_modules folder
| | |- package.json
| |- project3
| | |- node_modules   <- Packages for project 3 only
| | |- package.json

我猜项目3的node-modules文件夹中的一些包依赖于它在父文件夹的node_modules文件夹中找到(或找不到)的包。尽管您希望在项目3的node_modules文件夹中找到依赖项。也许是因为导入和引用某些包的方式?

不用说,这是一场即将发生的灾难:)

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

>myApp>npm install

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

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

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

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

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

在我的情况下,我没有使用正确版本的nvm。