使用管理员权限(sudo)从节点访问NPM模块

时间:2014-08-01 21:34:26

标签: javascript node.js npm sudo

我正在尝试编写一个使用NPM API的Node脚本。该脚本有效,但需要管理员访问才能安装某些模块。我尝试使用sudo运行脚本,但是在需要NPM的行上失败了。

我把它提炼成以下简单的脚本:

var npm = require('npm'),
    assert = require('assert');

assert.notEqual(npm, null, 'NPM is null');

定期使用node npm.js运行此脚本,并使用sudo node npm.js运行它会引发以下情况:

Error: Cannot find module 'npm'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Projects/MyNPM/npm.js:1:73)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10) 

我缺少什么,以及当我使用sudo时路径结构会发生什么?

1 个答案:

答案 0 :(得分:0)

最后通过在本地安装NPM到目录来解决。谢谢@SLaks!