每当我调用npm或其他二进制文件(如rails)时,它会调用nodejs并说节点找不到模块。
例如,在homefolder中运行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
答案 0 :(得分:0)
我发现这是因为我覆盖了' env' / usr / bin中的二进制文件,带有nodeJS的二进制文件。
为了恢复二进制文件,我重新安装了linux的coreutils软件包。
这会导致所有解释器都有预处理器命令'#!/ usr / bin / env'使用nodeJS而不是检测正确的ENV来运行脚本。