无法在 Mac 上安装 Ember Octane; NPM 和 NVM 的问题
Can't install Ember Octane on Mac; problems with NPM and NVM
我想用 MacOS Catalina 在我的 Mac 上安装最新版本的 Ember。我实际上以为我几周前就这样做了(这台机器只有三个月大),但是 ember -v
说 Ember CLI 的版本是 3.9,也就是 13 个月大。
所以我在终端输入npm install -g ember-cli
,但是我得到一个错误:
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR! stack:
npm ERR! "Error: EACCES: permission denied, access '/usr/local/lib/node_modules'",
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
所以我按照建议 here 进行了安装 nvm
:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
有一些输出,一切正常,但是当我尝试使用 command -v nvm
验证我的安装时,根本没有输出。
npm uninstall ember-cli
给我 up to date in 0.031s
.
我该怎么做才能得到EmberOctane运行?
edit:我设法使用 Homebrew 安装了 NVM。 nvm -v
说 0.35.3
。但我没有找到有关如何从这里继续的任何信息。我在尝试安装 Ember.
时仍然遇到同样的错误
你的问题出在你的评论上:
npm bin
says /Users/<my-username>/node_modules/.bin
. which ember
says /usr/local/bin/ember
. Now it is important to understand the PATH
.
您的 PATH
包括多个目录,每当您输入一个推荐时,都会在所有这些目录中查找它。现在你的 PATH
肯定包含 /usr/local/bin/
并且可能稍后包含 /Users/<my-username>/node_modules/.bin
。它肯定 应该 包含 borth 目录。如果 不 包含 /Users/<my-username>/node_modules/.bin
那是你应该立即修复的问题。
然而,现在您的主要问题是您基本上在两个版本和两个版本的 npm
中安装了 ember-cli
两次。在您最初安装 ember
时,您还没有使用 nvm
。将 npm
与 nvm
一起使用在某些方面与不使用它有很大不同。
如果您使用 nvm
,基本上一切都在您的 $HOME
中(所以 /Users/<username>
)。 npm install -g
将安装二进制文件的文件夹也是 /Users/<my-username>/node_modules/.bin
。这实际上是一件好事,因为这意味着每个用户都可以在那里安装自己的东西,而无需 sudo
。另一方面,如果您使用全局 npm
,您会将使用 npm install -g
安装的二进制文件安装到 /usr/local/bin/
中。然而,这需要 sudo
或更改某些权限。我们不知道你当时做了什么,也许你试过一次sudo
,从那以后这个版本基本上覆盖了你以后可能用[=23安装的所有其他版本=] 因为 /usr/local/bin/
在 PATH
之前 /Users/<my-username>/node_modules/.bin
.
现在你应该做的是先摆脱掉/usr/local/bin/ember
。为此你做 ls -lisa /usr/local/bin/ember
因为这可能是对其他地方的象征性 link 。然后检查此 link 通向何处并从那里删除 ember-cli
。只 rm -rf
安装在那里的软件包可能是安全的。接下来删除符号 link /usr/local/bin/ember
本身。然后再次运行 which ember
。不,这应该要么失败,要么指向不同的路径。如果它指向不同的路径,您可以验证它是否是您想要的版本(在 /Users/<my-username>/node_modules/.bin
中)。如果失败,您应该验证 /Users/<my-username>/node_modules/.bin
实际上在您的 PATH
中并且 ember
存在于 /Users/<my-username>/node_modules/.bin
.
中
除此之外,我想提一下 ember-cli
还有一些有趣的细节:如果您 运行 ember-cli
在 ember 项目中,它将搜索 ember-cli
安装在这个项目中并启动它。所以全局安装的 ember-cli
版本实际上并不重要。它基本上只与 ember new
有关。但是,对于 ember new
,您可能要考虑使用 npx
,因为那样您将始终 运行 当前版本。所以你可以做 npx ember-cli new my-app
.
我想用 MacOS Catalina 在我的 Mac 上安装最新版本的 Ember。我实际上以为我几周前就这样做了(这台机器只有三个月大),但是 ember -v
说 Ember CLI 的版本是 3.9,也就是 13 个月大。
所以我在终端输入npm install -g ember-cli
,但是我得到一个错误:
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR! { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules']
npm ERR! stack:
npm ERR! "Error: EACCES: permission denied, access '/usr/local/lib/node_modules'",
npm ERR! errno: -13,
npm ERR! code: 'EACCES',
npm ERR! syscall: 'access',
npm ERR! path: '/usr/local/lib/node_modules' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
所以我按照建议 here 进行了安装 nvm
:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
有一些输出,一切正常,但是当我尝试使用 command -v nvm
验证我的安装时,根本没有输出。
npm uninstall ember-cli
给我 up to date in 0.031s
.
我该怎么做才能得到EmberOctane运行?
edit:我设法使用 Homebrew 安装了 NVM。 nvm -v
说 0.35.3
。但我没有找到有关如何从这里继续的任何信息。我在尝试安装 Ember.
你的问题出在你的评论上:
npm bin
says/Users/<my-username>/node_modules/.bin
.which ember
says/usr/local/bin/ember
. Now it is important to understand thePATH
.
您的 PATH
包括多个目录,每当您输入一个推荐时,都会在所有这些目录中查找它。现在你的 PATH
肯定包含 /usr/local/bin/
并且可能稍后包含 /Users/<my-username>/node_modules/.bin
。它肯定 应该 包含 borth 目录。如果 不 包含 /Users/<my-username>/node_modules/.bin
那是你应该立即修复的问题。
然而,现在您的主要问题是您基本上在两个版本和两个版本的 npm
中安装了 ember-cli
两次。在您最初安装 ember
时,您还没有使用 nvm
。将 npm
与 nvm
一起使用在某些方面与不使用它有很大不同。
如果您使用 nvm
,基本上一切都在您的 $HOME
中(所以 /Users/<username>
)。 npm install -g
将安装二进制文件的文件夹也是 /Users/<my-username>/node_modules/.bin
。这实际上是一件好事,因为这意味着每个用户都可以在那里安装自己的东西,而无需 sudo
。另一方面,如果您使用全局 npm
,您会将使用 npm install -g
安装的二进制文件安装到 /usr/local/bin/
中。然而,这需要 sudo
或更改某些权限。我们不知道你当时做了什么,也许你试过一次sudo
,从那以后这个版本基本上覆盖了你以后可能用[=23安装的所有其他版本=] 因为 /usr/local/bin/
在 PATH
之前 /Users/<my-username>/node_modules/.bin
.
现在你应该做的是先摆脱掉/usr/local/bin/ember
。为此你做 ls -lisa /usr/local/bin/ember
因为这可能是对其他地方的象征性 link 。然后检查此 link 通向何处并从那里删除 ember-cli
。只 rm -rf
安装在那里的软件包可能是安全的。接下来删除符号 link /usr/local/bin/ember
本身。然后再次运行 which ember
。不,这应该要么失败,要么指向不同的路径。如果它指向不同的路径,您可以验证它是否是您想要的版本(在 /Users/<my-username>/node_modules/.bin
中)。如果失败,您应该验证 /Users/<my-username>/node_modules/.bin
实际上在您的 PATH
中并且 ember
存在于 /Users/<my-username>/node_modules/.bin
.
除此之外,我想提一下 ember-cli
还有一些有趣的细节:如果您 运行 ember-cli
在 ember 项目中,它将搜索 ember-cli
安装在这个项目中并启动它。所以全局安装的 ember-cli
版本实际上并不重要。它基本上只与 ember new
有关。但是,对于 ember new
,您可能要考虑使用 npx
,因为那样您将始终 运行 当前版本。所以你可以做 npx ember-cli new my-app
.