【发布时间】:2015-03-17 00:43:35
【问题描述】:
【问题讨论】:
-
需要注意的是,虽然您要求使用自制软件。不建议使用 homebrew 安装 nvm 来自github.com/creationix/nvm "不支持 Homebrew 安装。如果您对 homebrew 安装的 nvm 有问题,请 brew 卸载它,并在提交问题之前按照以下说明安装它。"跨度>
标签: node.js macos npm homebrew nvm
【问题讨论】:
标签: node.js macos npm homebrew nvm
2021 年更新
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
MAC 故障排除:
从 macOS 10.15 开始,默认的 shell 是 zsh,nvm 会寻找 .zshrc 来更新,默认没有安装。使用 touch 创建一个 ~/.zshrc 并再次运行安装脚本。
如果你使用 bash,之前的默认 shell,如果不存在,运行 touch ~/.bash_profile 创建必要的配置文件。
您可能需要重新启动终端实例或运行 . ~/.nvm/nvm.sh。重新启动终端/打开新选项卡/窗口,或运行源命令将加载命令和新配置。
您以前使用过 bash,但您安装了 zsh。您需要手动将这些行添加到 ~/.zshrc 并运行。 ~/.zshrc.
【讨论】:
在大多数答案中,推荐的安装 nvm 的方法是使用 Homebrew
不要这样做
在Github Page 为 nvm 明确指出:
不支持 Homebrew 安装。如果您有问题 自制安装的 nvm,请 brew 卸载它,然后使用安装它 在提交问题之前,请按照以下说明进行操作。
改用下面的方法
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
该脚本将 nvm 存储库克隆到 ~/.nvm 并将源代码行添加到您的配置文件(~/.bash_profile、~/.zshrc、~/.profile 或 ~/.bashrc)。
然后使用nvm安装node。例如要安装最新的 LTS 版本:
nvm install v8.11.1
干净无忧。它也会将此标记为您的默认节点版本,因此您应该全部设置好
【讨论】:
nvm install --lts 获取最新的LTS
使用 zsh 和 Homebrew 安装:
brew install nvm
然后将以下内容添加到 ~/.zshrc 或您想要的 shell 配置文件:
export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"
然后安装一个node版本并使用它。
nvm install 7.10.1
nvm use 7.10.1
【讨论】:
我来得太晚了,但我不喜欢其他答案
对于 brew 运行
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
你不应该使用brew来安装node和npm。
我看到一些地方建议你应该使用 Homebrew 来安装 Node(比如 alexpods 的答案和在这个 Team Treehouse blog Post 中),但是以这种方式安装你更容易遇到像 npm 和 @987654328 这样的问题@ 都是 包管理器,你应该有一个 包管理器 管理另一个 包管理器 这会导致问题,就像这个错误官方 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 中阅读有关该主题的更多信息,他接着说
此外,使用 Homebrew 安装的 npm 将要求您在安装全局包时使用 sudo。由于 Homebrew 背后的核心理念之一是无需授予 root 权限即可安装应用程序,因此这是个坏主意。
我会使用 npm;但是您真的应该按照那里网站上的说明按照每个模块的安装说明进行操作,因为他们会比其他任何人更了解他们遇到的任何问题或错误
【讨论】:
我正在使用 n(节点版本管理)
你可以通过两种方式安装它
brew install n
或
npm install -g n
你可以在不同版本的node和io之间切换。这是我当前环境中的一个示例,当我在没有参数的情况下调用 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,因为这样您在安装全局包时不必提供超级用户权限(您可以简单地执行“npm install -g packagename”而无需添加 'sudo')。
不过,Brew 对于其他事情来说非常棒。每当我可以选择使用 Bower 安装某些东西时,我倾向于偏向于 Bower。
【讨论】:
如果您以前使用 brew 安装过 node,那么您将有一堆额外的文件,您应该在“正确的方式”安装 node 之前清理这些文件。另外,我必须在我的启动脚本中添加一些设置才能使事情顺利进行。
我编写了一个脚本来简化此操作。
# 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 答案。
【讨论】:
使用homebrew 安装nvm:
brew update
brew install nvm
source $(brew --prefix nvm)/nvm.sh
将最后一个命令添加到.profile、.bashrc 或.zshrc 文件中,以便在每次终端启动时不再运行它。因此,例如将其添加到.profile 运行:
echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile
如果您在使用brew 安装nvm 时遇到问题,您可以手动安装(参见here)
使用nvm安装node或iojs(你可以安装任何你想要的版本):
nvm install 0.10
# or
nvm install iojs-1.2.0
npm 附带node(或iojs),因此在安装node(或iojs)后可用。您可能需要将其升级到最新版本:
$ npm install -g npm@latest
UPD 以前的版本是 。感谢@Metallica 指出正确的方法(请看下面的评论)。npm update -g npm
使用npm安装ionic:
npm install -g ionic
ngCordova 怎么样:您可以使用npm 或bower 安装它。我不知道哪种变体更适合您,这取决于您要用于客户端的包管理器。所以我会同时描述它们:
使用npm:转到您的项目文件夹并在其中安装ng-cordova:
npm install --save ng-cordova
使用bower:安装凉亭:
npm install -g bower
然后转到你的项目文件夹并在其中安装ngCordova:
bower install --save ngCordova
附言
npm install some_module 的短变体是npm i some_module
【讨论】:
npm install -g npm@latest(来自brew info node,和@ 987654322@)
我同意 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 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
然后使用package.json 和npm install 为每个项目安装其他所有内容。
【讨论】: