nodejs module.js:340 错误:找不到模块

Posted

技术标签:

【中文标题】nodejs module.js:340 错误:找不到模块【英文标题】:nodejs module.js:340 error: cannot find module 【发布时间】:2013-09-29 00:01:27 【问题描述】:

我在 C:\Program Files (x86)\nodejs 中安装了 nodejs

然后我创建了一个 .js 文件并将其保存在我的桌面中,只是为了在控制台中输出“hello world”:

console.log('hello world');

当我尝试从命令提示符运行文件时:

C:\Users\Laura>cd desktop
C:\Users\Laura\Desktop>node nodeTest.js

我明白了:

module.js:340
throw err;
      ^
Error: Cannot find module 'C:\Users\Laura\Desktop\testNode.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

我阅读了许多其他相关问题,其中一些建议运行安装,所以我这样做了。

C:\Users\Laura>npm install -g express

但运气不好,仍然收到相同的错误消息。

【问题讨论】:

npm install -g express 的部分完全没有意义。 从错误消息中,我建议您在终端/控制台上拼错了文件名。 确实,一个是testNode.js,一个是nodeTest.js? 不。谢谢你的收获,但事实并非如此。 我也遇到了同样的错误,请检查您的 javascript 文件扩展名.. 它应该可以解决您的问题.. 【参考方案1】:

编辑:这个答案已经过时了。使用 Yarn 和 NPM 5 的锁文件之类的东西,现在可以更轻松地确保您在 Heroku 等平台上的依赖项是正确的

我遇到了与 node_modules 在本地以某种方式修改有关的类似问题,但更改并未反映在 Heroku 上,导致我的应用程序崩溃。如果这是您的问题,则相对容易解决:

# Remove node_modules
rm -fr node_modules

# Reinstall packages
npm i

# Commit changes
git add node_modules
git commit -m 'Fix node_modules dependencies.'
git push heroku master

希望对遇到类似问题的其他人有所帮助。

【讨论】:

您对所提出的问题是正确的。但是,it is a really bad idea to check in node_modules。尽管 Heroku 推荐它,但 Node.JS 构建包会在部署时自动运行 npm install。无需将不属于您的代码签入您的存储库,然后将一堆原子提交/对依赖项的更改集中到一个提交中。 当推荐的方法是版本控制 mode_modules 时,我写了回来,但是对于现在阅读这篇文章的人来说是的,请尽量避免版本控制。 我使用了前两个命令(删除 node_modules/重新安装包)并且工作起来很有魅力。谢谢!【参考方案2】:

我在不久前有人写的服务器上遇到了同样的问题。事实证明,我没有安装脚本所需的一些东西。

这个question 对我很有帮助。

我最终能够使用:

npm install yourMissingDependency 

尽管在您的实例中它可能只是一个没有路径的文件。 您可以尝试将该文件放在运行节点脚本的同一文件夹中。

【讨论】:

【参考方案3】:

我认为问题在于 NODE_PATH 环境变量。我有同样的问题,但一旦我发出(在 Windows 上)

set NODE_PATH=C:\Users\MyUser\node_modules

然后一切正常。

干杯,

【讨论】:

【参考方案4】:

重新启动命令提示符并检查路径变量(类型:路径)。 如果在输出中找不到 nodejs 安装目录,请将其添加到路径变量中,并记得重新启动 cdm...

【讨论】:

【参考方案5】:

我遇到了几乎相同的问题,结果发现我的 JS 文件实际上不在我调用它的文件夹中,而且我的文件夹太深了。 我去了一个目录,运行了文件,它认出了它,从此愉快地结束了。

或者,如果你向上移动一个文件夹,它给你同样的错误,但是关于不同的模块,在你的父文件夹中获取相同的文件并将它移动到你之前尝试从中运行的子文件夹中。

TL;DR- 您的文件或其模块不在您认为的文件夹中。上一级

【讨论】:

【参考方案6】:

尝试在 Node 命令行环境中输入:

.load c:/users/laura/desktop/nodeTest.js.

它应该适用于您正在尝试做的事情。

如果您想直接调用该文件,则必须将其放在您的 Node 安装所在的根目录中。

【讨论】:

感谢@Shmuli 的评论。正如 TheHippo 和 lightblade 指出的那样,当我提交问题时,我打错了。该文件的实际名称是 testNode.js。无论如何,我使用正确的文件名尝试了您的建议,但没有奏效。我输入: > .load .c:\users\laura\desktop\testNode.js 我得到: Failed to load:.c:\users\laura\desktop\testNode.js 哦,对不起@Laura Martinez。你可以这样做:.load c:/users/laura/desktop/testNode.js。 (必须去掉c:/...之前的那段时间)我试过了,它有效。很高兴你发现这是一个错字问题...我回去更正了我的答案。 我仍然收到失败消息。 > > .load c:/users/laura/desktop/testNode.js > 加载失败:c:/users/laura/desktop/testNode.js【参考方案7】:

您好 Phonegap/Cordova/Ionic 开发人员,

  I solved this issue by doing the following

  1. C: drive -> Users -> "username" eg. john -> AppData -> Roaming

  2. Inside the "Roaming" folder you need to delete both "npm" and "npm-cache" 
       folder.

  3. Now build your project, and it should work

编码愉快!!!

【讨论】:

【参考方案8】:

我遇到了同样的问题。我只是复制了 testNode.js 文件(包含测试代码)并手动粘贴到 nodejs 目录的根目录中。我试过这个命令C:\Program Files (x86)\nodejs>node testnode.js 答对了!我收到了这条消息。

然后我在浏览器中输入了这个 url 并收到了“Hello World”消息。 希望这对某人有所帮助。

【讨论】:

【参考方案9】:

你需要:

从 Windows 资源管理器文件夹选项中删除 Hide extensions for known file types 的勾号 您的文件将显示为testNode.js.txt 去掉尾部的.txt以便文件解析为JS文件

就是这样,现在可以了!

【讨论】:

【参考方案10】:

我遇到了同样的问题,然后我发现我没有在 server.js 所在的正确目录中点击 node server 命令。

希望这会有所帮助。

【讨论】:

【参考方案11】:

尝试npm install --production,然后尝试npm start

【讨论】:

【参考方案12】:

解决这个问题的简单方法

npm link e

【讨论】:

【参考方案13】:

我也遇到了这个问题,这是由于我们在运行时提到的错误路径。检查您的文件路径,并确保您的目录名称之间没有空格。

【讨论】:

【参考方案14】:
    在 Node.js 命令提示符中尝试npm start。 查看消息的末尾 - 它为您提供了“附加日志记录详细信息...”中的日志文件路径,例如 c:\users\MyUser\npm-debug.log 用记事本打开这个文件,找到Node.exe的真实地址: 类似C:\\Program Files\\nodejs\\\\node.exe 尝试 cd 到此路径

    致电node.exe + <full path to your server file.js>

    Server is listening on port 1337 !
    

【讨论】:

【参考方案15】:

我遇到了同样的问题,但最后我尝试将 Node_modules 文件夹复制到同一个项目文件夹中,并且成功了。

【讨论】:

【参考方案16】:

我执行了以下命令,它对我有用。

PM> npm install ee-first ee-first@1.1.0 node_modules\ee-first

【讨论】:

【参考方案17】:

当我尝试运行我的第一个节点应用程序时,我遇到了同样的问题,但是当我试图查看可能是什么问题时,它是文件的路径。我正在从不同的位置运行节点 .js,因此遇到了问题。当我修复路径时,它工作正常。

【讨论】:

请通过添加代码 sn-ps 来改进您的回复,解释将解决问题。【参考方案18】:

就我而言,我收到此错误是因为我只是在错误的目录中。所以节点找不到我想运行的模块。只要确保你的节点文件在你的桌面目录中。

【讨论】:

【参考方案19】:

如果您使用的是 express 之类的框架,则需要将 package.json 文件放入您正在使用的文件夹中,并且不要忘记更改主名称。

【讨论】:

【参考方案20】:

确保您将文件保存为 JavaScript。取消选中“文件夹选项”窗口中的“隐藏所有已知类型的扩展名”复选框将显示正确的文件扩展名(文件夹>>查看>>选项)。

【讨论】:

【参考方案21】:

在尝试运行 node-red 时遇到了同样的问题。

node <directory structure where js  is located>/red. js

在我的情况下是:

node AppData/Roaming/npm/node_modules/node-red/red.js

【讨论】:

以上是关于nodejs module.js:340 错误:找不到模块的主要内容,如果未能解决你的问题,请参考以下文章

业力开始找不到模块'茉莉花核心'

找不到模块'咖啡脚本'

Worklight CLI 未在 mac 中启动 Giving Error

如何包含适用于 Node.js 的 Amazon EC2 库?

不能在Cygwin运行的CoffeeScript

yeoman 角度发生器不会在 grunt serve 上启动