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

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


当前回答

如果您需要的模块的package.json中缺少或不正确的主字段,则可能会遇到此错误。虽然模块本身已安装,但npm/node必须使用单个.js文件作为模块的入口点。如果主字段不在,则默认在模块的文件夹中查找index.js。如果模块的主文件不名为index.js,它将无法要求它。

在将基于浏览器的模块转换为CommonJS必需模块时发现;browserify并不关心缺少的主字段,因此错误没有被注意到。

其他回答

首先,是的,我回答的一部分肯定有助于解决OP发布的错误。其次,在尝试了以下步骤后,我遇到了一些其他错误,因此,我也编写了这些错误的解决方案。

(嘘!我不确定我是否成功地帮助解决了上述错误,或者我是否打破了某些规则或回答格式,但我面对了上述错误和其他一些错误,我花了很多时间来找到这些错误的正确解决方案。我正在写完整的解决方案,因为万一其他人也面临这些错误,那么他很有希望在这里找到解决方案。)

因此,补充并阐述了PrashanthiDevi提供的答案,并补充了我的个人经验,这里是:

我是整个e2e和单元测试部分的新手。我从《长话短说》开始研究这一部分。现在我已经有了编写测试的文件,但我必须运行测试。

我已经安装了所有必需的软件和工具,但当我最初运行运行测试的代码时,我遇到了“找不到模块”错误。在经历了许多关于SO的不同问题后,我找到了一个我认为有助于找到解决方案的答案。

此人建议在我的项目文件夹中运行命令npm install。

这样做的原因是用所有必需的文件和依赖项更新项目文件夹中的节点模块文件夹。

(以下部分可能与这个问题无关,但如果有人遇到我所面临的同样情况,可能会有所帮助。)

上述步骤确实解决了我以前的错误,但又抛出了一个新错误!这一次的错误是“无法在”处找到chromedriver。。\node_modules\量角器\硒\铬驱动器'。

然而,这个错误的解决方案对我来说很愚蠢(也很有趣)。我的selenium文件夹中已经有了chromedriver文件。但事实证明,出现上述错误是因为我的chromedriver文件位于selenium文件夹中,而不是chromedriver文件夹中。因此,创建一个chromedriver文件夹并在那里复制chromedriver文件解决了我的问题!

此外,对于错误:等待WebDriverServer超时,您可以将这行代码添加到exports.config{}中的conf.js文件中:

硒地址:'http://localhost:8080/'

希望这有帮助!

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

也许像我一样,您将express中的“视图引擎”设置为不存在的引擎,或者尝试使用未注册的模板引擎。确保使用:app.engine('引擎名称',引擎)app.set(“查看引擎”,“引擎名称”)

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

rm -rf node_modules
npm install

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

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

检查文件夹树中是否有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文件夹中找到依赖项。也许是因为导入和引用某些包的方式?

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