Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用管理员权限(sudo)从节点访问NPM模块_Javascript_Node.js_Npm_Sudo - Fatal编程技术网

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

Javascript 使用管理员权限(sudo)从节点访问NPM模块,javascript,node.js,npm,sudo,Javascript,Node.js,Npm,Sudo,我正在尝试编写一个使用NPMAPI的节点脚本。该脚本可以工作,但需要对要安装的某些模块具有管理员访问权限。我尝试使用sudo运行脚本,但在需要NPM的行中失败 我将其提炼为以下简单脚本: var npm = require('npm'), assert = require('assert'); assert.notEqual(npm, null, 'NPM is null'); 使用node npm.js定期运行此脚本是有效的,使用sudo node npm.js运行此脚本会引发以下

我正在尝试编写一个使用NPMAPI的节点脚本。该脚本可以工作,但需要对要安装的某些模块具有管理员访问权限。我尝试使用
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) 
错误:找不到模块“npm”
在Function.Module.\u解析文件名(Module.js:338:15)
在Function.Module.\u加载(Module.js:280:25)
at Module.require(Module.js:364:17)
根据需要(模块js:380:17)
反对。(/Projects/MyNPM/npm.js:1:73)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)

我遗漏了什么,以及当我使用
sudo
时路径结构会发生什么变化?

最终通过在目录本地安装NPM解决了这个问题。谢谢@SLaks

将npm作为代码的本地依赖项安装。为什么
sudo
会阻止我访问本地安装?我假设npm可能只是为您的用户安装的,而不是为整个系统安装的,因此
sudo
根本找不到它。