如何阅读 npm ENOENT 错误
Posted
技术标签:
【中文标题】如何阅读 npm ENOENT 错误【英文标题】:How to read npm ENOENT errors 【发布时间】:2014-03-27 22:05:42 【问题描述】:我有 2 个 ENOENT 错误。我知道“ENOENT”的意思是“错误 NO ENTrance”,但这两个 ENOENT 到底缺少什么?这些错误信息是什么意思?我想破译它们以便能够调试问题。
npm ERR! Error: ENOENT, lstat '/home/ubuntu/.npm/iconv-lite/0.2.11/package/encodings/table/gbk.js'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Linux 3.2.0-54-virtual
npm ERR! command "/home/ubuntu/local/bin/node" "/home/ubuntu/local/bin/npm" "install"
npm ERR! cwd /home/ubuntu/app_e
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! path /home/ubuntu/.npm/iconv-lite/0.2.11/package/encodings/table/gbk.js
npm ERR! fstream_path /home/ubuntu/.npm/iconv-lite/0.2.11/package/encodings/table/gbk.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /home/ubuntu/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
和
npm ERR! Error: ENOENT, chmod '/home/ubuntu/app_f/node_modules/grunt/lib/grunt/util.js'
npm ERR! If you need help, you may report this *entire* log,
npm ERR! including the npm and node versions, at:
npm ERR! <http://github.com/npm/npm/issues>
npm ERR! System Linux 3.2.0-54-virtual
npm ERR! command "/home/ubuntu/local/bin/node" "/home/ubuntu/local/bin/npm" "install"
npm ERR! cwd /home/ubuntu/app_f
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! path /home/ubuntu/app_f/node_modules/grunt/lib/grunt/util.js
npm ERR! fstream_path /home/ubuntu/app_f/node_modules/grunt/lib/grunt/util.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chmod
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /home/ubuntu/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm http GET https://registry.npmjs.org/graceful-fs
一个似乎在 gbk.js 上有一个“lstat”问题,另一个在 util.js 上有一个“chmod”问题,但是命令“node”、“npm”和“install”、“cwd”呢? “fstream”和Object.oncomplete?
这里是writer.js:284。 这里是writer.js:305。
【问题讨论】:
【参考方案1】:读取错误行:Error: ENOENT, lstat '/home/ubuntu/.npm/iconv-lite/0.2.11/package/encodings/table/gbk.js'
这意味着在执行fs.lstat('/home/ubuntu/.npm/iconv-lite/0.2.11/package/encodings/table/gbk.js', ...)
之类的操作时,npm 收到了ENOENT
错误。这意味着文件丢失了,但 npm 预计它会在那里。
对于第二个,npm 正在执行类似 fs.chmod('/home/ubuntu/app_f/node_modules/grunt/lib/grunt/util.js', ...)
的操作,并且 npm 收到了 ENOENT
错误。
其余的是调试信息。这些都是发生错误时的一些变量/属性:
npm ERR! System Linux 3.2.0-54-virtual --> THis is the system type
npm ERR! command "/home/ubuntu/local/bin/node" "/home/ubuntu/local/bin/npm" "install" --> the command that was issued
npm ERR! cwd /home/ubuntu/app_f --> The current working directory
npm ERR! node -v v0.10.26 --> You should know this one!
npm ERR! npm -v 1.4.3 --> You should know this one!
npm ERR! path /home/ubuntu/app_f/node_modules/grunt/lib/grunt/util.js
这些是关于fstream module。它表明它到底在做什么。
npm ERR! fstream_path /home/ubuntu/app_f/node_modules/grunt/lib/grunt/util.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chmod
这是错误发生时的堆栈跟踪(类似于conosle.log(new Error().stack)
的输出):
npm ERR! fstream_stack /home/ubuntu/local/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
【讨论】:
【参考方案2】:阅读 NPM 日志的一个怪癖:必须查看流中的第一个错误。上游错误可能会导致文件丢失,从而导致许多错误,例如您在上面报告的错误。
尝试转到日志顶部,然后向下滚动,直到找到最初的第一个错误。
【讨论】:
以上是关于如何阅读 npm ENOENT 错误的主要内容,如果未能解决你的问题,请参考以下文章
npm 错误!代码 ENOENT,npm 错误!错误号 34
npm 错误! Windows_NT 6.1.7601:ENOENT:没有这样的文件或目录
无法在 Windows 8 上启动 npm(错误:ENOENT,stat 'C:\Users\User\AppData\Roaming\npm')[重复]