【问题标题】:Nodemon [filename.js] returns bash: nodemon: command not foundNodemon [filename.js] 返回 bash: nodemon: command not found
【发布时间】:2018-06-22 09:49:09
【问题描述】:

我无法让 nodemon 运行。我试过用npm install -g nodemonnpm install nodemon --save-dev 安装它。当我运行npm list -g --depth=0 时,它显示 nodemon 已安装。但是对于我的生活,无法让它发挥作用。有什么帮助吗?

【问题讨论】:

  • npm 在哪里安装二进制存根?该位置在您的 PATH 中吗?
  • @CharlesDuffy 你能再解释一下吗?
  • 当您以一种语言安装库时,允许这些库捆绑可执行脚本(npm install 以及不同语言的所有等效项 -- pip installgem install 等),它们'重新安装那些可执行包装器...嗯...某处。确切的位置取决于配置,通常包括您是以 root 身份还是以您自己的身份运行 npm,以及您是否使用 nodeenv 之类的东西。
  • ...不管它最终在哪里,你的 shell 都需要知道它——这就是 PATH 变量的工作。
  • ...所以,我们知道您使用了npm install -g,这意味着您正在安装到全局位置。然后,运行npm root -g 将告诉我们该位置的基础在哪里;需要在 PATH 中的位置将相对于它。

标签: node.js bash npm git-bash nodemon


【解决方案1】:

我试过了

sudo npm install -g --force nodemon

它对我有用。

【讨论】:

    【解决方案2】:

    我想补充一下我是如何解决这个问题的,因为我必须从几个不同的解决方案中进行一些混合和匹配。作为参考,这是针对 Windows 10 PC 的,nodemon 已经完美运行了几个月,然后突然找不到该命令,除非使用 npx 在本地运行。 这是我的步骤 -

    1. 通过运行npm list -g --depth=0检查它是否已全局安装,在我的情况下它已安装,所以重新开始......
    2. 我跑了npm uninstall -g nodemon
    3. 接下来,我使用npm install -g --force nodemon --save-dev 重新安装(可能建议先尝试运行npm install -g nodemon --save-dev,然后执行其余步骤,如果不起作用,请使用--force 再次执行步骤2 和3 )。
    4. 然后我使用命令npm config get prefix 检查了我的 npm 文件夹所在的位置,在我的情况下,该命令位于 C:\Users\username\AppData\Roaming\npm
    5. 我修改了我的 PATH 变量以添加该文件路径和附加了 \bin 的第二个条目(我不确定实际需要哪一个,因为有些人只需要根 npm 文件夹而其他人需要 bin,只需添加两者就很容易了)
    6. 最后,我按照另一个类似问题的指示,建议从 ~ 目录编辑 .bashrc 文件。但是,在 Windows 中,.bashrc 文件不会自动存在,因此您需要在 ~ 目录中创建一个。我还需要稍微更改为 Windows 编写导出的方式(因此,如果您有 Ubuntu 或 Linux,我建议搜索 .bashrc 文件的正确格式)。对于我来说,我使用了export PATH=%PATH%;C:\Users\username\AppData\Roaming\npm;(显然将“用户名”替换为您的用户名,或者在第 4 步中检索到的文件路径)

    我希望这可以帮助任何一直在努力解决这个问题的人!

    【讨论】:

      【解决方案3】:

      啊,所以你在 Windows 上。如果您使用的是 Linux/Unix:

      你是这样做的:

      找到 nodemon(或任何 npm)的路径。在 nodemons 情况下,您可以键入

      find / -name nodemon
      

      这将为您提供文件位置。将此目录添加到您的路径:

      echo 'PATH=/the/directory/from/find/output:$PATH' >> ~/.bashrc
      

      (注意:单引号;假设您使用的是 bash)

      【讨论】:

      • find / 太宽泛了——如果一台机器有 10 个不同的用户都运行过npm install nodemon,这将包括他们的每一个安装。搜索应从npm root 返回的位置开始,如果安装是使用npm install -g 完成的,则应从npm root -g 开始。
      • 也就是说,我相信 git-bash 标记从一开始就将此标记为 Windows 问题(“Git Bash”是与 Git 的常见 Windows 发行版一起安装的基于 msys 的 shell 环境)。跨度>
      • 对于查找:您只需执行一次即可将其添加到您的配置文件中的 PATH 中,我同意如果您使用个人安装,~ 可能会比/ 更好寻找。至于 windows-tag:我的立场是正确的。随意对我投反对票。
      • 这不仅仅关乎速度,还关乎在多用户系统或具有 virtualenv 风格的多根系统上找到正确的安装。即使~ 也不一定正确——如果您有一个用于项目 A 的 npm 根目录和用于项目 B 的不同 npm 根目录(因为 Python 开发人员通常每个项目都有一个 virtualenv 以便允许单独的库版本被使用),你只想看下当前合适的那个。
      【解决方案4】:

      原来我必须进入我的Path 并为我的 npms 设置路由。

      你是这样做的:

      1. 在 nodemons 中找到 nodemon(或任何 npm)的路径,您可以输入 where nodemon 这将为您提供文件位置。我的是C:\Users\rmcgu\AppData\Roaming\npm\nodemon复制那个文件路径。

      2. 搜索系统窗口,然后搜索高级系统设置。

      3. 这将打开一个名为系统属性的新窗口。从这里点击advanced 标签,然后点击Environment Variables...

      4. 然后在用户名的用户变量下,会有几个选项。就我而言,OneDrive、Path、Temp 和 TMP。点击path,然后点击edit...

      5. 在新窗口(编辑环境变量)上单击new 并过去您之前复制的文件路径,但删除\npm 之后的任何内容例如C:\Users\rmcgu\AppData\Roaming\npm\nodemon 变为C:\Users\rmcgu\AppData\Roaming\npm

      希望这可以帮助其他人。我在路径中设置了C:\Users\rmcgu\AppData\Roaming\npm\nodemon,但没有设置 npm 目录本身。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-26
        • 2023-01-05
        • 2019-07-07
        • 2023-01-08
        • 2014-07-01
        • 2018-07-18
        • 2010-12-09
        • 1970-01-01
        相关资源
        最近更新 更多