Node.js 如何在设置本地节点前缀后更新npm

Node.js 如何在设置本地节点前缀后更新npm,node.js,ubuntu,npm,Node.js,Ubuntu,Npm,我使用以下命令在我的Ubuntu机器上安装了nodejs+npm: curl -sL https://deb.nodesource.com/setup | bash - apt-get install -y nodejs echo prefix = ~/.node >> ~/.npmrc export PATH="$PATH:$HOME/.node/bin" 为了达到这个目的,我使用了以下命令: curl -sL https://deb.nodesource.com/setup

我使用以下命令在我的Ubuntu机器上安装了nodejs+npm:

curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs
echo prefix = ~/.node >> ~/.npmrc
export PATH="$PATH:$HOME/.node/bin" 
为了达到这个目的,我使用了以下命令:

curl -sL https://deb.nodesource.com/setup | bash -
apt-get install -y nodejs
echo prefix = ~/.node >> ~/.npmrc
export PATH="$PATH:$HOME/.node/bin" 
之后,我不能更新NPM。如果我运行
npm update-g npm
版本号不会更改,但是,如果我在
echo prefix
命令之前运行update命令,则更新工作并且npm被更新。

update 您已经安装了
node
+
npm
。默认情况下,
npm
使用
/usr/lib/node\u modules/
目录安装全局模块。非特权用户通常没有对该目录的写入权限,因此无法全局安装npm包

命令
echo prefix=~/.node>~/.npmrc
告诉
npm
将全局包安装到
~/.node/node\u模块
,而不是
usr/lib/node\u模块

致电后:

echo 'export PATH=$HOME/.node/bin:$PATH' >> ~/.bashrc
所有提供二进制脚本的
npm
软件包都添加到$PATH(例如
yo
browserify
)中,但也添加到
npm

npm
包通过
npm
包管理器本身进行管理。以下命令将
npm
更新为最新版本:

npm install -g npm

先前的答复 NodeSource提供了一个二进制版本的
nodejs
+
npm

在本文中,他们说要作为Debian系统的管理员运行这两个命令:

sudo curl -sL https://deb.nodesource.com/setup | bash -
sudo apt-get install -y nodejs nodejs-legacy
设置脚本中最重要的一行是:

 echo 'deb https://deb.nodesource.com/node ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list
node
+
npm
现在应该在您的系统上全局安装。从现在起,更新应由
apt get
管理


据我所知,您的
~/.node
目录中安装了另一个
节点
+
npm
。我不知道你为什么需要它。据我所知,全局
npm
软件包安装在
~/.npm
目录中,它们不会干扰
apt get
安装的
npm
二进制文件

无论如何,如果您确实想从
~./node/bin
使用自定义节点安装,则应通过以下方式导出
$PATH

export PATH="$HOME/.node/bin:$PATH"
您还可以通过将此命令添加到
~/.bashrc
文件中,自动导出
$PATH

echo 'export PATH=$HOME/.node/bin:$PATH' >> ~/.bashrc

*NIX在
$PATH
中指定的每个目录中查找二进制文件(例如
npm
)。它从左到右执行找到的第一个匹配的二进制文件。在
$PATH
变量的某个地方,您有
/usr/bin
。如果您想首先从
~/.node/bin
中找到
npm
/
节点
,则应将该目录放在
$PATH
环境变量的更左边。

如果您想要更新良好的nodejs+npm:

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
sudo npm update -g npm

以下命令的输出是什么:
哪个npm
@JevZelenkov输出是
/usr/bin/npm
你能运行以下命令并说出符号链接指向
ls-l/usr/bin/npm
的位置吗?@JevZelenkov我运行了命令,这是输出:
lrwxrwx 1根目录38 Jan 28 19:03/usr/bin/npm->../lib/node_modules/npm/bin/npm cli.js
我已经尝试了所有路径更改、重置、关闭和重新打开,但都不起作用(不要更改版本)。但我看到了一个新东西。如果我运行
npm安装-g npm
关闭并重新打开终端,版本号将更新!新安装的输出:
/home/nicolocdev/.node/bin/npm->/home/nicolocdev/.node/lib/node\u modules/npm/bin/npm-cli.jsnpm@2.4.1/home/nicolocdev/.node/lib/node_modules/npm
好的,这就是我的方式:
echo'export PATH=$home/.node/bin:$PATH'>>~/.bashrc
然后:
npm安装-g npm
。谢谢你的帮助