【问题标题】:how to rest prefix: npm config set prefix /usr/local如何休息前缀:npm config set prefix /usr/local
【发布时间】:2020-02-21 04:00:57
【问题描述】:

我在解决“ionic: command not found”问题时遇到了问题。

我发现建议尝试的帖子:npm config set prefix /usr/local

但我不小心输入了“npm config set prefix /usr/loca”。

现在,如果我尝试运行任何 npm 命令,它只会抛出错误:

Error: EPERM: operation not permitted, mkdir '/usr/loca'
TypeError: Cannot read property 'get' of undefined
    at errorMessage (/usr/local/lib/node_modules/npm/lib/utils/error-message.js:38:39)
    at errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:201:13)
    at /usr/local/lib/node_modules/npm/bin/npm-cli.js:78:20
    at cb (/usr/local/lib/node_modules/npm/lib/npm.js:225:22)
    at /usr/local/lib/node_modules/npm/lib/npm.js:263:24
    at /usr/local/lib/node_modules/npm/lib/config/core.js:81:7
    at Array.forEach (<anonymous>)
    at /usr/local/lib/node_modules/npm/lib/config/core.js:80:13
    at f (/usr/local/lib/node_modules/npm/node_modules/once/once.js:25:25)
    at afterExtras (/usr/local/lib/node_modules/npm/lib/config/core.js:171:20)
/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97
  var doExit = npm.config.loaded ? npm.config.get('_exit') : true
                          ^

TypeError: Cannot read property 'loaded' of undefined
    at exit (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:97:27)
    at process.errorHandler (/usr/local/lib/node_modules/npm/lib/utils/error-handler.js:216:3)
    at process.emit (events.js:210:5)
    at process._fatalException (internal/process/execution.js:150:25)

有什么办法可以解决吗?

非常感谢!

【问题讨论】:

  • 你有没有发现我面临同样的问题
  • 我认为是版本问题。我想我尝试了一个较旧的 npm 版本最终奏效了。
  • 编辑你的 ~/.npmrc 来重置前缀是否足够?

标签: node.js ionic-framework npm npm-install


【解决方案1】:

我花了大约 2 个小时才弄清楚这一点。认为它可能会对面临类似问题的人有所帮助。

问题在于:

% npm config set prefix /usr/loca

正如您从上面看到的那样,我忘记了导致 npm config 将我的“前缀”设置为 /usr/loca 的行末尾的字母“l”[这是我对问题的理解。由于我是 Node 世界的新手,请随时纠正我]

现在,当我尝试运行时 -

% npx create-react-app myApp

我收到一个错误 -

错误:EPERM:不允许操作,mkdir '/usr/loca'

因为没有名为“loca”的目录。 关于禁用 SIP 以使其工作的建议很少,但我认为这不是一个好主意。无论如何,这是我为解决问题所采取的步骤 -

第 1 步:在您的终端上键入 --> sudo -I 进入 root 帐户

第 2 步:输入您的根凭据密码

第三步:强制清除 npm 缓存 --> npm cache clean --force

第四步:安装最新的 npm --> npm install -g npm@latest --force

第五步:再次清空 npm 缓存 --> npm cache clean --force

第 6 步:您现在应该很好了。检查你的 npm 版本 --> rpm -v

第 7 步:“退出”根目录

第八步:这次正确设置前缀 --> npm config set prefix /usr/local

第 9 步:npx create-react-app 客户端

第 10 步:输入“Y”以安装 create-react-app 包

如果一切顺利,您应该会在最后一行看到“Happy Hacking”消息。

【讨论】:

    【解决方案2】:

    您可以将用户名字符串中空格后的空格替换为“~1”。

    npm config set cache "C:\Users\Firstname~1\AppData\Roaming\npm-cache" --global
    

    希望这会对您有所帮助。快乐编码:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 2014-03-27
      • 2021-02-09
      • 2014-08-05
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      相关资源
      最近更新 更多