我正在尽可能多地使用Homebrew。在MacOS X上安装Node.js、nvm和npm的推荐方式是什么?
当前回答
你应该用nvm安装node.js,因为这样你就不必在安装全局包时提供超级用户权限(你可以简单地执行"npm install -g packagename"而不加'sudo')。
然而,对于其他事情,Brew是非常棒的。每当我可以选择使用Bower安装一些东西时,我都倾向于使用Bower。
其他回答
我是这么做的:
curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35
这款没有自制啤酒。
NVM很快将支持io.js,但现在还不支持:https://github.com/creationix/nvm/issues/590
然后用包安装每个项目的其他所有东西。Json和NPM安装。
我同意noa——如果你需要拥有多个版本的node, io.js,那么brew不是合适的解决方案。
你可以在nvm中帮助beta测试io.js支持:https://github.com/creationix/nvm/pull/616
如果你只想要io.js,并且不切换版本,那么你可以从https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz安装io.js的二进制发行版;这包括NPM,如果你不切换版本,你将不需要NVM。
记得在安装后更新npm: sudo npm install -g npm@latest
我已经很晚了,但我不喜欢其他的答案
安装自酿酒
用于酿造
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装node和npm
你不应该使用brew来安装node和npm。
我看到过一些地方建议你应该使用Homebrew来安装Node(比如alexpods的答案和在这个Team Treehouse博客文章中),但是这样安装你更容易遇到问题,因为npm和brew都是包管理器,你应该有一个包管理器来管理另一个包管理器,这就会导致问题,就像这个官方npm问题错误:拒绝删除:/usr/local/bin/npm或这个无法在OSX上卸载npm模块
你可以在DanHerbert的帖子中阅读更多关于这个话题的内容,在Mac OS X上为Homebrew用户修复npm
此外,使用npm的Homebrew安装将要求你在安装全局包时使用sudo。因为Homebrew背后的核心思想之一是应用程序可以在不给予root访问权限的情况下安装,这是一个坏主意。
对于其他事情
我会使用npm;但你真的应该按照每个模块的安装说明,按照他们网站上的说明,因为他们会比其他人更清楚他们有任何问题或错误
我使用n(节点版本管理)
您可以通过两种方式安装它
brew install n
or
npm install -g n
您可以在不同版本的node和io之间进行切换。下面是一个来自我当前env的例子,当我不带参数地调用n时:
$ n
io/3.3.1
node/0.12.7
node/4.0.0
node/5.0.0
ο node/5.10.1
使用nvm安装Node.js,而不是Homebrew
在大多数回答中,推荐使用Homebrew安装nvm。
不要这样做。
在nvm的Github上,Readme清楚地说:
不支持自制程序安装。如果你对homebrew安装的nvm有问题,请先卸载它,然后按照下面的说明进行安装,然后再提交问题。
请使用下面的方法
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
脚本将nvm存储库克隆到~/。NVM并将源行添加到概要文件(~/。bash_profile、~ /。zshrc ~ /。或者~/.bashrc)。
然后使用nvm安装node。例如,要安装最新的LTS版本,请:
nvm install 16
干净,没有麻烦。它会把这个设置为你的默认Node.js版本,所以你应该都设置好了。
推荐文章
- 错误:无法找到模块“webpack”
- 在OSX中永久设置PATH环境变量
- 如何停止mysqld
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- Express函数中的“res”和“req”参数是什么?
- 如何从远程SSH会话发送数据到本地剪贴板
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]
- Passport.js -错误:序列化用户到会话失败
- Node.js vs .Net性能
- SSH端口转发~/。ssh /配置文件?
- 从电子应用程序中删除菜单栏
- 如何用node.js实现一个安全的REST API