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

时间:2014-04-15 19:36:12

标签: node.js npm homebrew nvm

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

4 个答案:

答案 0 :(得分:9)

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

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

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

homebrew非常适合与aggit等项目无关的工具,以及相对稳定的其他内容,如postgresql或mysql或mongodb。但对于实际的语言运行时,耦合太紧,所以我不会使用自制程序。

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

答案 1 :(得分:7)

要更新npm,您需要运行npm update npm -g-g代表全球的地方。

知道如果您想更新系统上安装的全局软件包,您将运行npm update -g

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

/your/current/directory/
└── (empty)

如果你在该文件夹中有节点包,你会看到类似这样的东西。 (注意:这是我运行npm list -g)时返回的内容

/usr/local/lib
└─┬ npm@1.4.7
  ├── abbrev@1.0.4
  ├── ansi@0.2.1
  ├── ...

您可能还想运行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/中仍然有自己的位置。您仍然使用与通过软件包安装安装它时相同的所有命令。但是,您可以通过简单地运行brew uninstall node来实际卸载节点和npm,这是您无法安装的其他方式。

希望这有帮助。

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

答案 2 :(得分:3)

如果通过Brew安装,有些人报告npm update无法正常工作(npm无法更新npm)。

我建议手动安装,因为NPM将管理node.js更新和包,而Brew只管理node.js + npm但不管理模块。 Brew也经常落后于更新版本。

答案 3 :(得分:0)

以下是自制手动安装节点js

的一些优点或优点
  1. 通过安装程序安装节点时,您需要sudo权限 正确安装或卸载软件包。sudo让安装程序 将文件放在文件系统中只能访问的区域中 管理员。 Homebrew的一个好处是它没有 要求按顺序访问计算机的仅管理员区域 安装NodeJS
  2. 通过安装程序安装Node后,您必须添加路径 可执行到您的系统$ PATH.where的节点,如同自制软件一样,它将负责该任务。
  3. 其中一个开箱即用的优势是它可以帮助Web开发人员在Mac上安装一些丢失的软件包。