运行npm在当前目录

时间:2016-12-09 04:11:03

标签: node.js linux npm

每当我调用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

1 个答案:

答案 0 :(得分:0)

我发现这是因为我覆盖了' env' / usr / bin中的二进制文件,带有nodeJS的二进制文件。

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

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