所以我以前遇到过一些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更新或安装任何东西.没有任何东西进入旧文件夹,这是实际使用的文件夹.
我该如何解决这个问题?某些链接或配置文件被搞砸了吗?
看起来这与您的 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 已经是。
| 归档时间: |
|
| 查看次数: |
1421 次 |
| 最近记录: |