在OS X上安装brew,node.js,io.js,nvm,npm的建议方法是什么?

问题描述 投票:154回答:9

我想尽可能地使用自制软件。在OS X上安装以下内容的建议方法是什么?

并希望支持以下发展:

node.js macos npm homebrew io.js
9个回答
255
投票
  1. 使用homebrew安装nvmbrew update brew install nvm source $(brew --prefix nvm)/nvm.sh 将最后一个命令添加到.profile.bashrc.zshrc文件,以便在每个终端启动时不再运行它。例如,将其添加到.profile运行: echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile 如果您在使用nvm安装brew时遇到问题,可以手动安装(参见here
  2. 使用nvm安装nodeiojs(您可以安装任何您想要的版本): nvm install 0.10 # or nvm install iojs-1.2.0
  3. npmnode(或iojs)一起发货,因此在安装node(或iojs)后即可使用。您可能希望将其升级到最新版本: $ npm install -g npm@latest UPD以前的版本是 npm update -g npm 。感谢@Metallica指向正确的方式(请看下面的评论)。
  4. 使用npm安装ionicnpm install -g ionic
  5. 怎么样ngCordova:你可以使用npmbower安装它。我不知道哪种变体更适合您,这取决于您要用于客户端的包管理器。所以我将描述它们: 使用npm:转到项目文件夹并在其中安装ng-cordovanpm install --save ng-cordova 使用bower:安装凉亭: npm install -g bower 然后转到项目文件夹并在其中安装ngCordova bower install --save ngCordova

PS

  1. 某些命令可能需要超级用户权限
  2. npm install some_module的简短变种是npm i some_module

20
投票

2019更新:使用NVM安装节点,而不是Homebrew

在大多数答案中,建议安装nvm的方法是使用Homebrew

不要那样做

Github Page的nvm,它显然被称为:

不支持Homebrew安装。如果您在使用自制软件安装的nvm时遇到问题,请在提交问题之前将其卸载并按照以下说明进行安装。

请改用以下方法

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash

该脚本将nvm存储库克隆到〜/ .nvm并将源代码行添加到您的配置文件中(〜/ .bash_profile,〜/ .zshrc,〜/ .profile或〜/ .bashrc)。

然后使用nvm安装节点。例如,安装最新的LTS版本:

nvm install v8.11.1

干净无忧。它会将此标记为您的默认节点版本,因此您应该全部设置


11
投票

我正在使用n(节点版本管理)

您可以通过两种方式安装它

brew install n

要么

npm install -g n

您可以在不同版本的节点和io之间切换。这是我当前env的一个例子,当我调用没有参数的n时:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 

8
投票

我迟到了,但我不喜欢其他答案

安装Homebrew

用于酿造运行

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装节点和npm

你不应该使用brew来安装node和npm。

我已经看到一些地方建议你应该使用Homebrew来安装Node(比如alexpods的答案和这个Team Treehouse blog Post)但是安装这种方式你更容易遇到问题,因为npmbrew都是包管理器你应该有包管理器管理另一个包管理器这会导致问题,比如这个bug官方npm问题Error: Refusing to delete: /usr/local/bin/npm或这个Can't uninstall npm module on OSX

你可以在DanHerbert的帖子Fixing npm On Mac OS X for Homebrew Users上阅读更多关于这个主题的内容,他继续说

此外,使用nb的Homebrew安装将要求您在安装全局包时使用sudo。由于Homebrew背后的核心思想之一是可以在不给root用户访问的情况下安装应用程序,这是一个坏主意。

对于其他一切

我用npm;但你真的应该按照网站上的指示按照每个模块的安装说明进行操作,因为他们会比其他人更了解他们遇到的任何问题或错误


6
投票

如果您以前使用brew安装了节点,那么您将拥有一堆额外的文件,您应该在以“正确的方式”安装节点之前清理它们。另外,我必须在启动脚本中添加一些设置才能使工作顺利进行。

我写了一个脚本来简化这一过程。

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g npm@latest'
npm install -g npm@latest
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

我写了一篇短文here,详细说明了为什么这是“正确的方法”。

如果你需要安装iojs,请使用nvm这样做:

nvm install iojs-v1.7.1

要安装brew,只需看看它的home page

请参阅alexpods的答案。


5
投票

您应该使用nvm安装node.js,因为这样您在安装全局软件包时不必提供超级用户权限(您只需执行“npm install -g packagename”而不必预先添加“sudo”)。

然而,Brew对于其他事物来说非常棒。每当我有选择安装Bower的东西时,我倾向于偏向Bower。


4
投票

我同意noa - 如果你需要有多个版本的nodeio.js那么brew不是合适的解决方案。

您可以在nvm:io.js中帮助beta测试https://github.com/creationix/nvm/pull/616支持

如果你只是想要io.js并且没有切换版本,那么你可以从io.js安装https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz的二进制发行版;包括npm,如果你没有切换版本,你将不需要nvm

请记得在安装后更新npmsudo npm install -g npm@latest


3
投票

这是我做的:

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

没有Homebrew这个。

nvm很快将支持io.js,但在发布时不会:https://github.com/creationix/nvm/issues/590

然后使用package.jsonnpm install安装其他所有项目。


0
投票

使用zsh和Homebrew进行安装:

brew install nvm

然后将以下内容添加到〜/ .zshrc或您想要的shell配置文件中:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

然后安装节点版本并使用它。

nvm install 7.10.1
nvm use 7.10.1
© www.soinside.com 2019 - 2024. All rights reserved.