Ember.js无法全局安装

时间:2016-01-19 22:49:02

标签: powershell ember.js windows-7 npm

我运行命令安装Ember.js:

npm install -g ember-cli

然后当我跑:

Ember -v

我收到错误:“术语ember未被识别为cmdlet,函数,脚本文件或可操作程序的名称......”

我添加了系统环境变量$NODE_PATH = %AppData%\npm\node_modules

我在$ NODE_PATH

中看到了ember-cli文件夹

这是一台新成像的机器,所以这可能是我的npm设置/配置的问题。如何在全球范围内安装ember?

2 个答案:

答案 0 :(得分:0)

我将%AppData%\npm(使用完整路径,在我的情况下为C:\Users\bmackey\AppData\Roaming\npm)添加到系统Path环境变量中。我必须从我的路径中删除C:\Program Files\Microsoft DNX\Dnvm\才能保持在260个字符的限制之内;希望我不会需要这个。我不知道260字符限制的方法。

现在ember -v有效。

答案 1 :(得分:0)

您需要将ember.cmd文件的路径添加到powershell环境变量中,请注意这与标准PATH环境变量不同。

对于那些不知道的人,只需运行命令ember就可以运行ember(节点模块)的原因是因为当你安装ember时它会在你的AppData文件夹中创建一个ember.cmd文件: enter image description here

这个文件通常看起来像这样,只是bootstraps节点并运行ember js文件:

@IF EXIST "%~dp0\node.exe" (
  "%~dp0\node.exe"  "%~dp0\node_modules\ember-cli\bin\ember" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS;=;%
  node  "%~dp0\node_modules\ember-cli\bin\ember" %*
)

因此,当您从命令窗口或powershell运行ember时,它只会在其PATH变量中查找cmd文件。如果没有指向此cmd文件位置的条目,则无法运行它。

要在powershell中修复此问题,请运行以下命令:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\Users\<user>\AppData\npm", [EnvironmentVariableTarget]::Machine)

大部分内容取自the answer here

确保C:\Users\<user>\AppData\npm是NPM部署了您的ember.cmd文件的地方。我已经看到这也部署在C:\Users\<user>\AppData\Roaming\npm中,所以它可以变化。