【问题标题】:nodemon not found in npm在 npm 中找不到 nodemon
【发布时间】:2015-04-15 13:13:47
【问题描述】:

我有一个问题:nodemon 没有运行 npm 脚本(例如npm start),
但是如果在 npm 脚本之外的命令行上调用 nodemon,nodemon 会正常运行。

$ nodemon server.js
14 Feb 22:59:51 - [nodemon] v1.3.7
14 Feb 22:59:51 - [nodemon] to restart at any time, enter `rs`
14 Feb 22:59:51 - [nodemon] watching: *.*
14 Feb 22:59:51 - [nodemon] starting `node server.js`

在 npm 脚本中是如何调用的:

package.json

{
...
  "scripts": {
    "start": "nodemon server.js"
  }
}

当 npm start 脚本运行时:

$ npm start
> aaa@0.0.1 start /home/akul/Documents/aaa
> nodemon server.js

sh: 1: nodemon: not found

npm ERR! Linux 3.13.0-45-generic
npm ERR! argv "node" "/home/akul/npm-global/bin/npm" "start"
npm ERR! node v0.12.0
npm ERR! npm  v2.5.0
npm ERR! code ELIFECYCLE
npm ERR! aaa@0.0.1 start: `nodemon server.js`
npm ERR! Exit status 127
npm ERR! 
npm ERR! Failed at the aaa@0.0.1 start script 'nodemon server.js'.
npm ERR! This is most likely a problem with the aaa package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     nodemon server.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls aaa
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/akul/Documents/aaa/npm-debug.log

我一直在寻找解决方案,但没有找到。

【问题讨论】:

    标签: node.js npm nodemon


    【解决方案1】:

    您可以通过将nodemon 添加到您的package.json 来解决此问题:

    npm install nodemon --save-dev
    

    nodemon/node_modules/.bin 中不存在时,就会出现问题。

    添加了--save-dev,因为它仅在开发过程中需要。

    【讨论】:

    • npm WARN prefer global nodemon@1.3.7 应该使用 -g 安装,但现在成功了,谢谢 nodemon 在未使用的全局目录中:D
    • 我也遇到了同样的问题。现在解决这个命令 - npm install nodemon --save
    • 不要使用标志 --save 安装 nodemon,因为 nodemon 仅用于开发。使用-g--save-dev 标志
    【解决方案2】:

    尝试检查已安装的全局包npm list -g --depth=0。如果找不到nodemon,请使用标志-g--save-dev 安装它。不要使用标志--save 安装nodemon,因为nodemon 仅用于development

    【讨论】:

    • npm install -g nodemon
    【解决方案3】:

    在你当前的项目目录下,运行

    npm install nodemon --save //save in package.json so that the following code cam find your nodemon
    

    然后在 package.json 文件中的“脚本”下,添加“start”:“nodemon app.js”(或任何您的入口点)
    看起来像这样:

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "nodemon app.js"
    }
    

    然后运行

    npm start
    

    这避免了复杂的 PATH 设置,它适用于我的 mac
    希望能帮到你;)

    【讨论】:

    • 不要使用标志 --save 安装 nodemon,因为 nodemon 仅用于开发。使用 -g 或 --save-dev
    【解决方案4】:

    使用以下命令全局安装nodemon。它可以在我的电脑上运行,我相信它也可以在你的系统上运行。

    npm install nodemon -g --save
    

    有时您应该有权在全局范围内安装它。使用以下命令即可轻松完成。

    1. 在 LINUX UBUNTU 中: sudo npm install nodemon -g --save

    2. 在 Fedora 中:

      a) su
      b)npm install nodemon -g --save

    【讨论】:

      【解决方案5】:

      尝试全局安装 nodemon。

      sudo npm install -g nodemon
      

      【讨论】:

        【解决方案6】:

        这是我修复它的方法:

        当我使用 npm install nodemon -g --save 安装 nodemon 时,我的全局 npm 包路径不存在于 PATH 变量中。

        如果您只是将它添加到 $PATH 变量中,它将得到修复。

        编辑您的主文件夹中的 ~/.bashrc 文件并添加以下行:-

        export PATH=$PATH:~/npm
        

        这里的“npm”是我的全局 npm 包的路径。将其替换为系统中的全局路径

        【讨论】:

        • path 应该是 npm bin location 这工作 export PATH=$PATH:~/npm/bin
        【解决方案7】:

        您必须简单地全局安装它。 npm install -g nodemon

        【讨论】:

        • 这也对我有用。然后开始 - #nodemon ./path/to/startfile
        【解决方案8】:

        heroku 默认在生产环境中运行,因此它不会安装开发依赖项。

        如果您不想将 nodemon 作为依赖项重新安装,我认为不应该这样做,因为它的正确位置是在 devDependencies 中而不是在依赖项中。

        相反,您可以创建两个 npm 脚本来避免此错误,方法是仅在本地主机中运行 nodemon,如下所示:

        "scripts": {
            "test": "echo \"Error: no test specified\" && exit 1",
            "start": "node app.js",
            "start:dev": "nodemon --watch"
        },
        

        当您想在本地运行项目时,只需在终端中运行 npm run start:dev,它将通过 nodemon 加载 app.js。

        在 heroku 中 npm start 默认运行并从普通节点命令加载 app.js,您就可以摆脱该错误。

        【讨论】:

          【解决方案9】:

          这个解决方案对我有用:

          我假设你已经全局安装了 nodemon。如果完成,请按照以下步骤操作:

          打开您的 .bash_profile 文件:

          nano .bash_profile
          

          在您的 bash 配置文件中添加一个新别名:

          alias nodemon='~/.npm-global/lib/node_modules/nodemon/bin/nodemon.js'
          

          现在您可以在任何地方使用 nodemon 命令。

          【讨论】:

            【解决方案10】:
            sudo npm install nodemon -g --save
            

            最后这对我有用。我希望这也适用于其他人

            【讨论】:

              【解决方案11】:

              NPM 用于管理和下载包。但是,必须使用 NPX 作为执行 Node Packages 的工具

              尝试使用 NPX nodemon ...

              希望这会有所帮助!

              【讨论】:

                【解决方案12】:

                这对我有用...

                将 nodemon 安装为本地开发依赖项

                npm install --save-dev nodemon
                

                将脚本添加到您的应用程序 package.json 以启动应用程序。

                "scripts": {
                  "start": "nodemon app.js"
                },
                

                npm start启动nodemon

                $ npm start
                
                > node-rest-demo@1.0.0 start node-rest-demo
                > nodemon app.js
                
                [nodemon] 1.19.4 [nodemon] to restart at any time, enter `rs` [nodemon] watching dir(s): *.* [nodemon] watching extensions: js,mjs,json [nodemon] starting `node app.js` Starting server ...
                

                【讨论】:

                  【解决方案13】:

                  安装 babel 后我的 nodemon 消失了(为什么?)。

                  尝试了很多东西。 以下是我的解决方法:

                  sudo npm i -g nodemon
                  

                  只需使用 sudo 重新安装即可。是的。

                  【讨论】:

                    【解决方案14】:

                    我遇到了类似的问题,但随后检查了 .npmrc 文件,密码不正确导致连接失败,因此 yarn --verbose 返回了错误的请求错误。修改密码后,包添加成功。

                    【讨论】:

                      【解决方案15】:

                      我找到了一个非常简单的解决方案。 只需从您的 PC 中删除 npm 和 npm 缓存文件夹即可。 重新安装一遍,但是我们很多人犯的错误是没有全局安装npm。所以:

                      npm i -g npm
                      

                      然后,全局安装 nodemon:

                      npm i -g nodemon
                      

                      现在,nodemon 在全局范围内工作,即使不使用命令:

                      npx nodemon <yourfilename>.js
                      

                      【讨论】:

                        【解决方案16】:

                        npx nodemon (app.js) 为我工作,而 nodemon (app.js) 没有。

                        我将 node.js 更新到了最新版本,现在两者都可以工作了。

                        【讨论】:

                        • 这与节点更新无关。本地安装的nodemon 进入./node_modules/.bin/nodemon。因此,您可以npx 执行 npm 包二进制文件,或者您可以按照多个其他答案中的说明全局安装nodemon(使用-g)。
                        • 感谢您的意见,我已经在全球范围内安装了 nodemon,但仍然无法为我工作。直到 node.js 更新它才开始工作。不知道如何,但我就是这样解决的。
                        【解决方案17】:

                        对于带有适用于 Linux 的 Windows 子系统的 Visual Studio Code 编辑器,即 WSL 模式:

                        sudo npm install nodemon -g
                        

                        供 nodemon 全局使用。

                        【讨论】:

                          【解决方案18】:

                          我遇到了同样的问题并且能够解决它。这是我的错误:

                          npm install -g nodemon
                          npm WARN checkPermissions Missing write access to /usr/local/lib
                          npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@~2.3.2 (node_modules/nodemon/node_modules/chokidar/node_modules/fsevents):
                          npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
                          
                          npm ERR! code EACCES
                          npm ERR! syscall access
                          npm ERR! path /usr/local/lib
                          npm ERR! errno -13
                          npm ERR! Error: EACCES: permission denied, access '/usr/local/lib'
                          npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib']
                          npm ERR!   stack:
                          npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib\'',
                          npm ERR!   errno: -13,
                          npm ERR!   code: 'EACCES',
                          npm ERR!   syscall: 'access',
                          npm ERR!   path: '/usr/local/lib' }
                          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
                          npm ERR! 
                          npm ERR! If you believe this might be a permissions issue, please double-check the
                          npm ERR! permissions of the file and its containing directories, or try running
                          npm ERR! the command again as root/Administrator.
                          
                          npm ERR! A complete log of this run can be found in:
                          npm ERR!     /home/rayani00/.npm/_logs/2022-01-03T17_50_15_842Z-debug.log
                          (base) rayani00@rayani00:~/Bureau/my-express-server$ npm cache clear --force
                          npm WARN using --force I sure hope you know what you are doing.
                          

                          为了解决这个问题,我只是为 nodemon 安装添加了一个 sudo:

                          1. sudo npm install -g nodemon
                          2. nodemon server.js

                          这对我有用!

                          【讨论】:

                            【解决方案19】:

                            我遇到了这个问题,即使在我的应用程序中使用了命令npm install nodemon --save,我仍然遇到 nodemon 问题。

                            我在全局安装nodemon后刚刚解决,使用命令:npm install nodemon -g

                            【讨论】:

                              【解决方案20】:


                              有同样的问题,否则一天前工作正常。 非常简单的修复 首先检查 nodemon 是否全局存在于您的系统上

                              检查

                              npm list -g --depth=0
                              

                              如果您没有看到,请安装 它npm install -g nodemon(g 代表全局)
                              如果你看到它仍然不起作用,那么你需要配置环境变量 我使用 Windows 操作系统。在 Windows 上导航到

                              Control panel>System>Advanced System Settings>Environment Variables>double-click on PATH
                              

                              现在检查你是否有这个路径C:\Users\yourUsername\AppData\Roaming\npm
                              如果没有,您将看到一些现有路径,只需附加到它用分号分隔即可。而已! 为我工作。 对我来说,节点安装在 C:..\Roaming\npm 中,如果 PATH 不同,您将放入任何适用的位置。

                              【讨论】:

                              • 我在 PATH 中丢失了条目。不知道如何,但你的建议解决了它。谢谢
                              • 我的荣幸!!享受
                              【解决方案21】:

                              首先将nodemon安装到您的工作文件夹

                              npm install nodemon
                              

                              将nodemon的路径添加到系统环境环境变量的路径变量中。 在我的例子中,nodemon 的路径是。

                              C:\Users\Dell\Desktop\Internship Project\schema\node_modules\.bin
                              

                              它对我有用。

                              【讨论】:

                                【解决方案22】:

                                您始终可以重新安装 Node.js。当我遇到这个问题时,我无法修复它,但我所做的只是更新当前版本的 Node.js。您可以使用此链接更新它:https://nodejs.org/en/download/

                                【讨论】:

                                  【解决方案23】:

                                  我想补充一下我是如何解决这个问题的,因为我必须从几个不同的解决方案中进行一些混合和匹配。作为参考,这是针对 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. 最后,我遵循了 Natesh 在此条目中推荐的类似指示,但是,在 Windows 中,.bashrc 文件不会自动存在,因此您需要在 ~ 目录中创建一个。我还需要稍微更改导出的写入方式export PATH=%PATH%;C:\Users\username\AppData\Roaming\npm;(显然将“用户名”替换为您的用户名,或者在步骤 4 中检索到的文件路径)

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

                                  【讨论】:

                                    【解决方案24】:

                                    --save、-g 和更改 package.json 脚本对我不起作用。下面是这样做的:在命令行中运行npm start(或使用npx nodemon)。我使用视觉工作室代码终端。 成功后,您将看到以下消息:

                                    [nodemon] 1.18.9
                                    【nodemon】随时重启,输入rs
                                    [nodemon] 观看:.
                                    [nodemon] 开始node app.js

                                    祝你好运!

                                    【讨论】:

                                      【解决方案25】:

                                      在我的情况下,nodemon 需要全局安装:

                                      npm i nodemon -g --save
                                      

                                      【讨论】:

                                        【解决方案26】:

                                        我尝试使用npm list -g --depth=0 列出全局包,但找不到 nodemon。
                                        因此,尝试使用全局标志安装它。
                                        sudo npm install nodemon -g
                                        这对我来说很好。

                                        【讨论】:

                                          【解决方案27】:

                                          Windows 使用说明,

                                          打开命令提示符。
                                          输入npm i -g nodemon --save
                                          “--save”就是把这个节点包的添加保存在你项目的package.json文件中

                                          【讨论】:

                                            【解决方案28】:

                                            我的情况:

                                            npm install nodemon
                                            

                                            没有任何标志等。

                                            【讨论】:

                                              【解决方案29】:

                                              linux 试试

                                              sudo npm install -g nodemon
                                              

                                              适用于窗户 以管理员身份打开 powershell 或 cmd

                                              npm install -g nodemon
                                              

                                              【讨论】:

                                                【解决方案30】:

                                                我在 Heroku 上部署时遇到了这个问题。 问题出在 Heroku 上,它本身不包含 devDependencies。 要解决此问题,只需在终端中运行以下命令:

                                                heroku 配置:设置 NPM_CONFIG_PRODUCTION=false

                                                确保在你的 devDependencies 中包含 nodemon

                                                "devDependencies": {
                                                    "nodemon": "^2.0.6"
                                                  }
                                                

                                                如果您的错误不在 Heroku 中

                                                我建议卸载 nodemon 然后重新安装它

                                                https://www.npmjs.com/package/nodemon

                                                或者尝试更改脚本

                                                "scripts": {
                                                    "start": "nodemon fileName.js",
                                                    "start:dev": "nodemon fileName.js"
                                                 }
                                                

                                                希望它会有所帮助:)

                                                【讨论】:

                                                  猜你喜欢
                                                  • 2017-10-16
                                                  • 1970-01-01
                                                  • 2021-05-16
                                                  • 2019-03-03
                                                  • 1970-01-01
                                                  • 1970-01-01
                                                  • 2021-09-27
                                                  • 1970-01-01
                                                  • 2017-09-06
                                                  相关资源
                                                  最近更新 更多