安装Node.js - 使用Brew vs手动管理的优点/缺点?

pcc*_*mie 12 homebrew node.js npm nvm

所以我正在寻找有关管理已手动安装的node.js软件包与使用自制软件的优缺点的一些信息.除了使用brew管理一切的明显优势(而不是使用nvm来保持节点更新),在使用brew和其他人手动管理某些事情时,是否存在任何实际问题或潜在的冲突?(或通过npm,nvm等?)

Pet*_*ons 9

应用程序解释器的情况如node.js(或python或ruby等)是:

  • 我有很多项目,有时几十个,几十个
  • 每个项目都适度或紧密耦合到特定的解释器版本
    • 例如,需要节点v0.8.x或v0.10.24
  • 在系统范围内安装这些解释器鼓励跨项目耦合,因此我升级节点因为project8已准备好升级并且project3中断.

鉴于这些限制,我按每个项目安装我的解释器,因为稳定性和解耦对我来说比其他因素(如减少磁盘空间要求)更重要.

homebrew非常适合与项目无关的工具,如ag,git等等,以及相对稳定的其他东西,如postgresql或mysql或mongodb.但对于实际的语言运行时,耦合太紧,所以我不使用自制软件.

安装节点只是下载并提取tar存档,所以说实话,你不需要花哨的工具.但是,我确实有一个名为wallah的项目可以帮助解决这个问题.你也可以看看nvmenvirius


小智 7

要更新npm自己,您需要运行npm update npm -g.哪里-g代表全球.

知道如果要更新系统上安装的全局软件包,就可以运行 npm update -g

如果-g在运行时没有附加npm update,则会尝试更新本地节点包(也就是当前目录$PWD).要查看是否在本地目录中安装了任何软件包,npm list如果没有安装,将返回以下内容

/your/current/directory/
??? (empty)
Run Code Online (Sandbox Code Playgroud)

如果你在该文件夹中有节点包,你会看到类似这样的东西.(注意:这是我跑的时候回来的npm list -g)

/usr/local/lib
??? npm@1.4.7
  ??? abbrev@1.0.4
  ??? ansi@0.2.1
  ??? ...
Run Code Online (Sandbox Code Playgroud)

您可能还想运行brew update && brew upgrade && brew doctor以确保一切都是最新的.

我对初始问题的建议是使用,brew因为从长远来看,它可以为您节省很多麻烦,因为它几乎可以管理您在计算机上安装的所有内容.看看这个https://github.com/nicolashery/mac-dev-setup,了解他们如何设置他们的开发计算机.

请务必查看此https://github.com/phinze/homebrew-cask,以便您可以通过以下方式安装应用程序brew cask <app you want>.

brew用于节点的最大原因是它同时安装了nodejs和npm,它使用$(brew --prefix)路径但仍然有自己的位置/usr/local/.您仍然使用与通过软件包安装安装它时相同的所有命令.但是,您实际上可以通过简单地运行卸载节点和npm,brew uninstall node而不是通过其他方式安装它.

希望这可以帮助.

PS:如果您已经通过其他方法安装了节点,那么sudo chown $USER /usr/local/*就是您的朋友.所有这一切都允许对所有文件夹和文件进行读/写访问,/usr/local/只需要修复brew的链接.


ala*_*rev 5

有些人报告npm update如果通过 Brew 安装则无法自行运行(npm 无法更新 npm)。

我建议手动安装,因为 NPM 将管理 Node.js 更新和包,而 Brew 将仅管理 Node.js + npm 而不是模块。此外,Brew 的更新版本也经常落后。

  • 啊,我明白了。您指的是:https://github.com/Homebrew/homebrew/issues/22408 (2认同)