【问题标题】:Accessing NPM module from Node using admin privileges (sudo)使用管理员权限从 Node 访问 NPM 模块 (sudo)
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-09-03
    • 1970-01-01
    • 2018-01-23
    • 2021-10-24
    • 2017-08-21
    • 2021-01-29
    • 2021-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多