Node.js 如何在设置本地节点前缀后更新npm
我使用以下命令在我的Ubuntu机器上安装了nodejs+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
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
。谢谢你的帮助