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

Lau*_*nez 41 module node.js

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

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

console.log('hello world');
Run Code Online (Sandbox Code Playgroud)

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

C:\Users\Laura>cd desktop
C:\Users\Laura\Desktop>node nodeTest.js
Run Code Online (Sandbox Code Playgroud)

我明白了:

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
Run Code Online (Sandbox Code Playgroud)

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

C:\Users\Laura>npm install -g express
Run Code Online (Sandbox Code Playgroud)

但没有运气,仍然得到相同的错误信息.

Dan*_*man 35

编辑:这个答案已经过时了.有了像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
Run Code Online (Sandbox Code Playgroud)

希望能帮助其他有类似问题的人.

  • 关于提出的问题你是对的.但是,[检查`node_modules`]是一个非常糟糕的主意(http://stackoverflow.com/a/19416403/568785).虽然Heroku推荐它,但Node.JS buildpack会在部署时自动运行`npm install`.没有必要将代码检查到不属于您的存储库中,然后将一堆原子提交/更改丢失到一个提交中. (7认同)

小智 19

我曾经和某个人曾经写过的服务器有同样的问题.事实证明我没有安装脚本所需的一些东西.

这个问题对我很有帮助.

我最终能够使用:

npm install yourMissingDependency 
Run Code Online (Sandbox Code Playgroud)

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


Jac*_*cek 5

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

set NODE_PATH=C:\Users\MyUser\node_modules
Run Code Online (Sandbox Code Playgroud)

然后一切正常.

干杯,


shm*_*uli 2

尝试在 Node 命令行环境中输入以下内容:

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

它应该适合您想要做的事情。

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