Npm全球没被使用?

Kel*_*hao 18 node.js npm

所以我以前遇到过一些npm问题,并遵循一些stackoverflow/github问题命令来尝试修复它们.哪个有用......有点儿.直到最近,当我意识到我的全局npm包实际上没有被读取/使用时,一切都很好.

所以每当我做一个npm -g install xxx或者更新.它更新了全局文件夹,但它没有被使用.所以我去挖了一点然后发现了这个.

npm在哪里读/使用

usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

全局安装到哪里

Users/Me/.npm-global/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

所以每当我对我的模块和东西进行-g检查时,一切都很好并且更新了,但是当我实际尝试运行任何东西时,npm命令使用旧文件夹中的那个.所以基本上我不能使用-g更新或安装任何东西.没有任何东西进入旧文件夹,这是实际使用的文件夹.

我该如何解决这个问题?某些链接或配置文件被搞砸了吗?

max*_*tou 3

看起来这与您的 npm 前缀配置有关。Global Prefix 是 npm 将安装全局包的文件夹。

首先,我将运行以下命令来获取全局前缀的值(https://docs.npmjs.com/cli/prefix

$ npm prefix -g
Run Code Online (Sandbox Code Playgroud)

要将其设置为不同的值:

npm config set prefix /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

这是全局包的位置,现在您需要检查终端 PATH 变量是否正在检查此文件夹中的二进制文件。

$ echo $PATH
Run Code Online (Sandbox Code Playgroud)

上面的命令将打印一个以“:”分隔的文件夹位置列表,您的 shell 将在其中检查二进制文件。

您的全局 npm 前缀位置应该是该列表的一部分,根据您的问题,我假设此文件夹 /usr/local/lib/node_modules 已经是。