【发布时间】:2014-08-01 21:34:26
【问题描述】:
我正在尝试编写一个使用 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 时路径结构会发生什么?
【问题讨论】:
-
安装 npm 作为代码的本地依赖项。
-
为什么
sudo会阻止我访问本地安装? -
我假设 npm 可能只是为您的用户而不是为整个系统安装的,所以
sudo根本找不到它。
标签: javascript node.js npm sudo