【问题标题】:Grunt installed but not working - "Command not found" on MavericksGrunt 已安装但无法正常工作 - Mavericks 上的“找不到命令”
【发布时间】:2014-01-27 19:12:20
【问题描述】:

我正在尝试将 grunt 与 sass 一起使用,并且一直在遵循以下指南:

我已经:

  • Intsalled node.js

  • 安装了命令行版本的grunt:sudo npm install -g grunt -cli

  • 将 grunt 安装程序的路径添加到我的 bash 配置文件中:export PATH=/usr/local/lib/node_modules/grunt/bin:$PATH

  • 使配置文件成为可执行文件:source ~/.bash_profile

  • 在我的项目根目录中设置 package.jsonGruntfile.js 文件

  • 将 grunt 安装到项目中:cd /path/to/project/root/sudo npm install

但是当我尝试运行 grunt 时,我看到:command not found

如果我运行也是一样的:grunt --version

根据上面发布的博客,我不确定 bash 路径是否需要 /bin,但两种方式都尝试过: /usr/local/lib/node_modules/grunt//usr/local/lib/node_modules/grunt/bin/

我也多次运行 grunt 安装程序,但没有看到任何错误,所以肯定它已安装 - 任何人都可以看到我做错了什么吗?我正在运行 OSX 小牛,以防这是问题所在。

任何正确方向的指针将不胜感激。

干杯

【问题讨论】:

  • 不确定是不是拼写错误,但是包的名称是grunt-cli,中间没有空格。
  • @Anzeo - 就是这样!所以可能正在安装非cli版本?干杯
  • 是的,它只是安装了带有 -cli 标志的 grunt(这没有任何意义):) 我将添加评论作为答案,以便您接受并关闭问题。

标签: installation gruntjs osx-mavericks


【解决方案1】:

您的命令中有错字。包名为grunt-cli,不带空格。

将命令更新为:

sudo npm install -g grunt-cli

一切都应该按预期工作。

【讨论】:

  • 不应该使用 sudo 来安装 npm 包:foohack.com/2010/08/intro-to-npm/#what_no_sudo
  • 我只是复制了 OP 的命令并纠正了错误,但感谢您提供的信息!
  • 其实安装grunt的时候需要'sudo'。如果你不使用 sudo,它会被安装,但没有可执行文件!
  • Daniel Kmak,您不需要的来源在哪里?检查:github.com/sindresorhus/guides/blob/master/…。如果您使用的是 nvm 或按照我提供的链接中的步骤操作,则在所有其他情况下都不需要 sudo,您需要使用 sudo 安装它以获得可执行文件。另外,请注意我们在这里讨论的是全局包。
  • @DanielKmak 虽然我同意你不应该盲目地使用 sudo,但 Grunt 的网站说:“为了开始,你需要在全球范围内安装 Grunt 的命令行界面 (CLI)。你可能需要使用 sudo(对于 OSX、*nix、BSD 等)或以管理员身份运行命令 shell(对于 Windows)来执行此操作。"
【解决方案2】:

希望此解决方案也可能对某人有所帮助。就我而言,这有点棘手。

在命令行中输入以下命令

 npm install grunt-cli -g

这将显示 grun 客户端的安装位置: 复制此位置并将其粘贴到文件浏览器中。这是我的情况吗?

 C:\Users\zkhaymed\AppData\Roaming\npm\node_modules\grunt-cli\bin

这将为您打开一个 grunt 文件的位置。 单击位置的地址行,然后单击鼠标右键将其复制为文本。 现在进入控制面板中系统的高级属性,将这个地址粘贴到系统变量和用户变量中,不要删除其他变量。

【讨论】:

    【解决方案3】:

    我遇到了一个非常相似的问题,希望这会有所帮助。

    1) 您想检查 nodenpm 的实际安装位​​置。如果您使用包管理器,例如 Homebrew 或 MacPorts,则位置可能存在问题。只需使用来自node.js website 的可下载安装程序。确保使用当前版本,而不是长期支持 (LTS)。安装程序将在 /usr/local/bin 中安装 nodenpm,它们应该已经在您的 PATH 中。如果您已经安装了 node/npm,您可以使用 which nodewhich npm 查看它们当前的位置。您应该分别看到/usr/local/bin/node/usr/local/bin/npm。使用npm update -g npm 安装后,您需要更新 npm。这可能需要sudo

    2) 正确安装/更新 nodenpm 后,转到项目的根目录(其中有 Gruntfile.js 和 package.json)并安装 Grunt使用npm install grunt --save-dev。记住 Grunt 这样做之后你应该会看到一个名为 node_modules 的新文件夹。

    3) 确保在安装 CLI 之前执行上一步。您可以使用Grunt's getting started documentation 来帮助指导您完成剩下的工作。请注意,安装 Grunt 的说明比安装 CLI 更靠后,这让人有些困惑。安装 Grunt 和 Grunt-CLI 后,运行 npm install 并在命令行中运行 grunt 以执行您的 Gruntfile.js。

    您现在应该能够看到已安装的版本。请注意,如果您在项目的根目录之外,您将看不到 Grunt 版本,但您会看到 Grunt-CLI 版本。这是因为 CLI 是全局安装的(从任何目录/子目录使用),但 Grunt 是基于每个项目安装的。

    希望这会有所帮助!

    【讨论】:

      【解决方案4】:

      我必须将此添加到 PATH(在 Mac 上 brew install node 之后):

      export NPM_HOME=/usr/local/Cellar/node/6.3.1/libexec/npm
      

      npm install 无效,无论我传递什么参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-18
        • 1970-01-01
        • 2011-12-18
        • 2017-10-05
        • 2015-02-05
        • 2015-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多