我在 stackoverflow 中寻找了一个类似的主题,但找不到,所以就在这里。
我一直在查看 MEAN 堆栈文档 http://learn.mean.io/并且只是检查一些 shell 命令。
我试图通过更新 npm
npm update -g npm
但这会出现错误
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/npm' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "update" "-g" "npm"
npm ERR! cwd /Users/cihankoseoglu
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR! error rolling back errno: 3,
npm ERR! error rolling back code: 'EACCES',
npm ERR! error rolling back path: '/usr/local/lib/node_modules/npm' }
npm ERR! not ok code 0
所以我尝试了
sudo npm update -g npm
但是在这个命令运行之后,我的 zsh shell 找不到 npm。当我键入任何 npm 命令时,它只会返回未找到的命令。我不得不重新安装 Node 。什么可能导致这种情况?是否出于我不知道的原因在后台卸载 npm 或更改其 PATH?
最佳答案
这是一个久经考验的 Node.js 安装技术,之后你的 npm 更新
命令将运行正常
以下是从源代码 (OSX/linux) 安装 Node.js 的步骤
您可以/应该以您自己而非 root (sudo) 身份发出所有这些 cmd
注意 - 这会安装 Node.js,它为您提供 node 和 npm,
他们每次发布都会聚集在一起。
重新开始删除先前的 Node 和 npm 安装以及这些:
sudo mv ~/.npmrc ~/.npmrc_ignore
sudo mv ~/.npm ~/.npm_ignore
sudo mv ~/tmp ~/tmp_ignore
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore
下载来源:https://nodejs.org/en/download/
cd node-v13.6.0
将环境变量 NODE_PATH 定义为后续模块安装的目录
export NODE_PARENT=/some/desired/install/path_goes_here
export NODE_PARENT=/usr/local/bin/nodejs # use this if you want to install as root (sudo)
export NODE_PARENT=${HOME}/node-v13.6.0 # use this if you want to install modules as yourself
export PATH=${NODE_PARENT}/bin:${PATH}
export NODE_PATH=${NODE_PARENT}/lib/node_modules
./configure --prefix=${NODE_PARENT}
make -j8 # if you have a quad core use -j8
make install # NOTICE not using sudo so install is owned by normal user
将其放入上述 --prefix 定义的目录中
验证其安装OK就发出
node --version
v13.6.0
当您使用语法时:
npm install -g some_cool_module
全局的 -g 将其安装到目录 $NODE_PATH 而不是您的 $PWD
现在把上面三个 export xxx=yyy
命令到你的 ~/.bashrc 或一些类似的东西来持久化这些环境变量的变化
当你想安装一些 npm 包时,请避免使用 sudo
关于node.js - npm 在 npm update 上自行卸载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27139323/