【问题标题】:Error: Cannot find module 'mkdirp'错误:找不到模块“mkdirp”
【发布时间】:2014-05-02 17:33:50
【问题描述】:

当我尝试运行 nodeJS 文件时,我的 Ubuntu 机器出现以下错误

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module 'mkdirp'
    at Function._resolveFilename (module.js:332:11)
    at Function._load (module.js:279:25)
    at Module.require (module.js:354:17)
    at require (module.js:370:17)
    at Object.<anonymous> (/home//dev/ation/siya/common.js:7:19)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Module.require (module.js:354:17)

所以我尝试了npm install mkdirp

npm http GET https://registry.npmjs.org/mkdirp

npm ERR! Error: failed to fetch from registry: mkdirp
npm ERR!     at /home/local/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:139:12
npm ERR!     at cb (/home/local/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:31:9)
npm ERR!     at Request._callback (/home/local/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:136:18)
npm ERR!     at Request.callback (/home//local/lib/node_modules/npm/node_modules/request/main.js:119:22)
npm ERR!     at Request.<anonymous> (/home/local/lib/node_modules/npm/node_modules/request/main.js:212:58)
npm ERR!     at Request.emit (events.js:88:20)
npm ERR!     at ClientRequest.<anonymous> (/home/local/lib/node_modules/npm/node_modules/request/main.js:412:12)
npm ERR!     at ClientRequest.emit (events.js:67:17)
npm ERR!     at HTTPParser.onIncoming (http.js:1261:11)
npm ERR!     at HTTPParser.onHeadersComplete (http.js:102:31)
npm ERR! You may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Linux 3.2.0-23-generic
npm ERR! command "node" "/home/local/bin/npm" "install" "mkdirp"
npm ERR! cwd /home/dev/tst_tion/servrs/sc
npm ERR! node -v v0.6.12
npm ERR! npm -v 1.1.4
npm ERR! message failed to fetch from registry: mkdirp
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/ushusadmin/dev/test_automation/servers/scriptAgentServer/npm-debug.log
npm not ok

我该如何解决这个问题

npm debug.log 文件

info it worked if it ends with ok
verbose cli [ 'node', '/home/ushusadmin/local/bin/npm', 'install', 'mkdirp' ]
info using npm@1.1.4
info using node@v0.6.12
verbose config file /home/ushusadmin/.npmrc
verbose config file /home/ushusadmin/local/etc/npmrc
verbose config file /home/ushusadmin/local/lib/node_modules/npm/npmrc
verbose caching /home/ushusadmin/dev/test_automation/servers/scriptAgentServer/node_modules/node-schedule/package.json
verbose caching /home/ushusadmin/dev/test_automation/servers/scriptAgentServer/node_modules/nodemailer/package.json
verbose caching /home/ushusadmin/dev/test_automation/servers/scriptAgentServer/node_modules/mustache/package.json
verbose caching /home/ushusadmin/dev/test_automation/servers/scriptAgentServer/node_modules/qs/package.json
verbose caching /home/ushusadmin/dev/test_automation/servers/scriptAgentServer/node_modules/mongodb/package.json
verbose cache add [ 'mkdirp', null ]
silly cache add: name, spec, args [ undefined, 'mkdirp', [ 'mkdirp', null ] ]
verbose parsed url { pathname: 'mkdirp', path: 'mkdirp', href: 'mkdirp' }
verbose addNamed [ 'mkdirp', '' ]
verbose addNamed [ null, '' ]
silly name, range, hasData [ 'mkdirp', '', false ]
verbose raw, before any munging mkdirp
verbose url resolving [ 'https://registry.npmjs.org/', './mkdirp' ]
verbose url resolved https://registry.npmjs.org/mkdirp
http GET https://registry.npmjs.org/mkdirp
ERR! Error: failed to fetch from registry: mkdirp
ERR!     at /home/ushusadmin/local/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:139:12
ERR!     at cb (/home/ushusadmin/local/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:31:9)
ERR!     at Request._callback (/home/ushusadmin/local/lib/node_modules/npm/lib/utils/npm-registry-client/request.js:136:18)
ERR!     at Request.callback (/home/ushusadmin/local/lib/node_modules/npm/node_modules/request/main.js:119:22)
ERR!     at Request.<anonymous> (/home/ushusadmin/local/lib/node_modules/npm/node_modules/request/main.js:212:58)
ERR!     at Request.emit (events.js:88:20)
ERR!     at ClientRequest.<anonymous> (/home/ushusadmin/local/lib/node_modules/npm/node_modules/request/main.js:412:12)
ERR!     at ClientRequest.emit (events.js:67:17)
ERR!     at HTTPParser.onIncoming (http.js:1261:11)
ERR!     at HTTPParser.onHeadersComplete (http.js:102:31)
ERR! You may report this log at:
ERR!     <http://github.com/isaacs/npm/issues>
ERR! or email it to:
ERR!     <npm-@googlegroups.com>
ERR! 
ERR! System Linux 3.2.0-23-generic
ERR! command "node" "/home/ushusadmin/local/bin/npm" "install" "mkdirp"
ERR! cwd /home/ushusadmin/dev/test_automation/servers/scriptAgentServer
ERR! node -v v0.6.12
ERR! npm -v 1.1.4
ERR! message failed to fetch from registry: mkdirp
verbose exit [ 1, true ]

实际上发生的事情是在尝试使用命令安装 sikuli 时删除了以下项目..我怎样才能恢复这些项目

$ sudo aptitude install sikuli-ide

Removing libc-ares-dev ...
Removing libc-ares2 ...
Removing libev-dev ...
Removing libev4 ...
Removing libv8-dev ...
Removing libv8-3.7.12.22 ...
Removing node-abbrev ...
Removing node-tar ...
Removing node-block-stream ...
Removing node-fstream ...
Removing node-graceful-fs ...
Removing node-inherits ...
Removing node-ini ...
Removing node-minimatch ...
Removing node-lru-cache ...
Removing node-mkdirp ...
Removing node-node-uuid ...
Removing node-nopt ...
Removing node-request ...
Removing node-rimraf ...
Removing node-semver ...
Removing node-which ...

【问题讨论】:

  • 你拼错 mkdirp 了吗? Error: failed to fetch from registry: kdirp
  • 你能显示npm-debug.log中的内容吗?
  • 抱歉其实是 mkdirp
  • 好的,我会给你看 npm 调试日志,请稍候
  • 嗨,我已经用 npm 调试文件更新了我的问题

标签: node.js ubuntu installation npm recovery


【解决方案1】:

使用手动过程安装 mkdirp:

对已删除的包使用通用模式:

  • 转到https://registry.npmjs.org/{module}/latest
  • 复制“tarball”的 URL 值:key
  • 下载压缩包
  • 在你的 node_modules 路径下展开它

作为替代方案,使用 npm install name@version 语法:

 npm install mkdirp@latest

或者 npm install git 语法:

 npm install git://github.com/substack/node-mkdirp.git

参考文献

【讨论】:

  • 你能解释一下为什么这是必要的吗?我尝试在一个项目上启动 http-server 时遇到此错误,而 http-server 在另一个项目上运行良好,而 node_modules 文件夹中没有这个神秘的 mkdirp
  • @ray 模块的nodeVersion参数好像和机器上安装的node版本不匹配,所以在里面找不到mkdirp的兼容版本NPM 注册表自动安装。 similar question 指的是设置 NODE_PATH 环境变量。 semver 会是更好的方法,npm-2.0 中还有一个 fix 可以删除多余的 mkdirp 引用。
【解决方案2】:

就我而言,我试图从我的用户没有足够权限的目录运行npm install。看看这些,看看这是否是问题所在。

【讨论】:

    【解决方案3】:

    尝试使用 Yarn 包管理器,使用 yarn commmand。它为我解决了这种问题

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 1970-01-01
      • 2018-12-30
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      相关资源
      最近更新 更多