【问题标题】:Running npm looks for a binary in current directory运行 npm 在当前目录中查找二进制文件
【发布时间】:2016-12-12 14:19:07
【问题描述】:

每当我调用 npm 或其他二进制文件(如 rails)时,它都会调用 nodejs 并说 node 找不到模块。

例如,在主文件夹中运行 npm 会告诉我:

Error: Cannot find module '/home/jekku/node'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

在另一个文件夹中运行 npm 会说

Error: Cannot find module '/home/jekku/somefolder/node'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

这是怎么回事?

编辑:

这也发生在 rvm 上。运行 rvm 说:

Error: Cannot find module '/home/jekku/bash'
    at Function.Module._resolveFilename (module.js:470:15)
    at Function.Module._load (module.js:418:25)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:420:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:535:3

【问题讨论】:

  • 顺便说一下,我试过卸载 nodeJS。但无济于事,它仍然失败。
  • 转到你安装节点的节点目录

标签: node.js linux npm


【解决方案1】:

我发现这是因为我用 nodeJS 的二进制文件覆盖了 /usr/bin 中的“env”二进制文件。

为了恢复二进制文件,我重新安装了 linux 的 coreutils 包。

这会导致所有带有预处理器命令 '#!/usr/bin/env' 的解释器使用 nodeJS,而不是检测正确的 ENV 来运行脚本。

【讨论】:

    猜你喜欢
    • 2015-06-13
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多