【问题标题】:How can I run nodemon from within WebStorm?如何从 WebStorm 中运行 nodemon?
【发布时间】:2013-10-11 10:06:28
【问题描述】:

我想在 WebStorm IDE(版本 7)中使用 nodemon。 Nodemon 监视我的源文件夹中的一个或多个文件,并在其中一个源文件更改时重新启动节点进程(在本例中为 Express 服务器)。

如何在运行配置中配置WebStorm使用nodemon,从而自动重启节点进程?

没有 nodemon,我在 WebStorm 中使用以下配置,但是每当我在源文件中更改某些内容时都必须重新启动节点进程:

  • 节点解释器:/usr/local/bin/node
  • 工作目录:/Users/foo/test
  • JavaScript 文件:server.js

这会导致在指定目录中运行node server.js 的运行配置。

在命令行中,我可以使用以下命令来使用 nodemon 来监视文件更改:项目目录中的nodemon server.js

我需要如何更改 WebStorm 配置以使其也使用 nodemon

【问题讨论】:

标签: javascript node.js webstorm nodemon


【解决方案1】:

这就是我的跑步方式

  1. 安装的nodemon包

    npm install -g nodemon # OR using yarn: yarn global add nodemon

  2. 从 Webstorm 终端,运行

    nodemon index.js

这就是它在终端中运行的显示方式

【讨论】:

    【解决方案2】:

    这是唯一对我有用的东西:

    1. 新增 package.json 节点运行脚本命令:

    1. 创建 NPM CONFIG(不是节点配置)
    2. 选择“start-watch”作为命令

    对我来说,这适用于调试/断点,没有问题或额外的头痛。

    【讨论】:

    • 似乎如果你这样做,“打破异常”不会打破异常:(
    【解决方案3】:

    我在 mac 中进行了开发,正如 OdkoPP 表示的那样,我成功了

    "scripts": {
    "build": "tsc",
    "dev": "nodemon src/index.ts --exec ts-node"
    },
    

    运行/调试配置 npm:

    【讨论】:

      【解决方案4】:

      只需将新脚本添加到 package.json 称为 nodemon(或选择您自己的名称)

      "scripts": {
        ...
        "nodemon": "nodemon ./bin/www"
      }
      

      然后转到运行/调试配置并添加npm配置。设置

      • 命令到“运行
      • 脚本到“nodemon”(您在 package.json 中选择的名称)

      【讨论】:

        【解决方案5】:

        似乎不再需要使用 --exec 的解决方法,至少在使用最新版本的 nodemon 和 Webstorm 7 或 8 时是如此。

        您所要做的就是指定 nodemon 的路径,方法是在控制台的“节点参数”下运行which nodemon(例如/usr/local/bin/nodemon)来获取其路径:

        @Bela Clark,感谢您的确认。

        【讨论】:

        • 刚刚试了一下——它现在工作得很好。感谢您提供更新的答案!
        • @bernhardw,使用这些配置启动调试器时,webstorm 不会在断点处停止。知道为什么吗?
        • 按照以下说明管理 nodemon 和断点工作:vcfvct.wordpress.com/2015/02/13/… 请注意,我使用了 --debug-brk 而不是 --debug
        • 为了进行调试,我不得不为 IntelliJ 使用 Live Edit 插件而不是 nodemon。
        • 好答案!谢谢
        【解决方案6】:

        如果你已经像全局库一样安装了 nodemon,只需在节点参数中设置:

        C:\Users\${yourUser}\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js

        【讨论】:

        • 通过 nvm 和 npm 14.7.0 像魅力一样工作
        【解决方案7】:

        这是对我遇到的错误的修复...

        如果您使用的是 Windows + NodeJS + nodemon。 使用 IntelliJ - 运行配置。

        ERROR: starting inspector on failed: address already in use
        

        当我使用 nodemon 版本 1.19.1 时,我得到了错误。 当我使用 nodemon 版本 1.18.11 时,它可以工作!

        祝你好运……

        【讨论】:

          【解决方案8】:

          我在 Windows 上,对我来说没有使用 nodemon(不知道为什么),但是 Jetbrains 的某个人建议尝试使用主管:

          1. 我安装了supervisor:npm install supervisor -g

          2. 然后找到supervisor 的安装位置,对我来说是: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error

          3. 我回到 Intellij:编辑配置 -> 节点参数 -> 并添加: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on 错误

          【讨论】:

          • 要在断点处停止,您应该添加:--debug-brk 并且完整的字符串是 C:\Users\<username>\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js no-restart-on error --debug-brk 从 jetbrains 检查 jetbrains.com/phpstorm/webhelp/… 地址
          • 无法让 nodemon 在带有 Webstorm 9 的 Windows 8 上工作,这就像一个魅力 tho
          • 适用于我(Windows 上的 Webstorm 11),但断点不起作用。我尝试添加--debug-brk,但没有成功。
          【解决方案9】:

          package.json 中的脚本:“start”:“nodemon --inspect -r babel-register src”,

          第一张图:运行调试,它将启动

          第二张图:附加到现有的运行节点

          【讨论】:

            【解决方案10】:

            你也可以让它与 nvm 一起工作,并且调试仍然有效。

            使用 Node.js 8.1.0 和 Webstorm 2017.2 测试

            首先确保您使用的是正确的版本(在我的情况下为 v8.1.0)并全局安装 nodemon -

            nvm use v8.1.0
            npm install -g nodemon
            

            然后,打开运行/调试配置并使用正确的节点解释器创建一个新配置。

            节点参数应该是:

            MAC

            /Users/[YOUR_USER]/.nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001
            

            Linux

            /usr/local/nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001
            

            负责任地保存和调试:)

            【讨论】:

              【解决方案11】:

              npm install -g nodemon

              1* goto run->Edit Configurations->Press'+' at left corner and choose Node.js
              
              2* Select Node.js and Press '+' 
              
              3* Name as Nodemon, add path in javaScript file: C:\Users\Your_User_Name\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js
              
              4* Click Apply and Ok
              
              5* Run the Nodemon
              

              【讨论】:

                【解决方案12】:

                对于那些对 Windows 10 中的解决方案感兴趣的人,这是我的配置。它不显示“终止批处理”的东西并且完美地工作。

                您按下调试一次,然后您可以保存更改文件,服务器将以调试模式重新启动。所有刹车点都运行良好

                【讨论】:

                • 这是调试的有效答案。我只设置节点参数。节点参数作为文本(更改用户名):c:\users\username\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js --debug=3001
                • 这对我不起作用。添加 --debug=3001 参数 crashed nodemon
                • 谢谢。基本运行正常,调试也没有任何问题!这应该是最佳答案!
                【解决方案13】:

                对于windows用户设置:

                节点解释器:node.exe 的路径,即 c:\program files\node\node.exe

                节点参数:C:\Users\YOURUSER\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js

                【讨论】:

                • 这对我有用!调试和断点完美运行。节点版本 10.15.1 nodemon 版本 1.18.10 Webstorm 2018.3.5
                【解决方案14】:

                根据@bernhardw 的评论,这就是我的答案 -

                所有需要的是/usr/local/bin/nodemonnode parameters 适用于运行和调试,因为它会在更改后重新启动,断点调试不起作用。

                奖励:添加 -e 以获得更多扩展名,例如 /usr/local/bin/nodemon -e js,html,jade

                (osx 10.10.5,红宝石 7.1.4)

                HTH

                【讨论】:

                  【解决方案15】:

                  这是 Windows 解决方案

                  你可以直接使用 nodemon.cmd 而不是 node :

                  Node interpreter : C:\MyPath\To\nodemon.cmd
                  Node parameters : /*Empty for me*/
                  Node WorkingDirectoy : C:\Users\MyUserName\Desktop\DirectoryContainingMyIndex.js
                  JavaScriptFile : app\index.js /*or just index.js depending on your config*/
                  

                  然后:

                  希望对你有所帮助。

                  【讨论】:

                  • 我认为这是最直接的答案。
                  • 嗨,试过这个,当我更改文件时,它会询问我(在 Web Storm 控制台中)“终止批处理作业(Y/N)?”。我还看到正在执行的命令是:“C:\Program Files (x86)\JetBrains\WebStorm 8.0.4\bin\runnerw.exe”C:\Users\xyz\AppData\Roaming\npm\nodemon.cmd - -debug-brk=27344 --nolazy -q app.js。我错过了什么吗?
                  • 对于“终止批处理作业”问题,只需将“superuser.com/a/498798)
                  • 为什么要投票?它不起作用,当 nodemon 重新启动时,它不会从初始开始添加“
                  • windows中的位置是C:\Users\\AppData\Roaming\npm\nodemon.cmd
                  【解决方案16】:

                  其中一些答案似乎仅适用于 Mac。对于 Windows,此配置似乎有效(我在 Windows 7 上的用户名是 denman)。

                  main.js 是我的 Express 应用程序的起点文件。

                  【讨论】:

                    【解决方案17】:

                    这是适用于 Windows 7 + WebStorm 8.0.4 的配置。如果我将 nodemon.cmd 作为节点解释器,我会不断收到“终止批处理作业(Y/N)?”。

                    【讨论】:

                    • 在 Windows 上查看我对这个问题的回答,我认为您指向了错误的 nodemon.cmd 文件
                    【解决方案18】:
                    1. 执行 npm install nodmemon -g
                    2. 仅将 Node 的路径更改为 nodemon.cmd,在我的情况下(C:\Users\Rohit Taneja\AppData\Roaming\npm\nodemon.cmd),您也将在nodemon 的安装完成。

                    3. 一切顺利

                    【讨论】:

                      【解决方案19】:

                      要安装 nodemon,请使用以下命令(如果需要,请使用 sudo 以 root 权限运行安装:

                      npm install -g nodemon
                      

                      这将在您的机器上全局安装 nodemon

                      然后,在您的 WebStorm 运行配置中,添加以下内容,其他所有内容保持不变:

                      • 节点参数:/usr/local/bin/nodemon --exec /usr/local/bin/node

                      这将指示节点解释器使用以下命令行执行nodemon 脚本:node /usr/local/bin/nodemon --exec /usr/local/bin/node server.js

                      --exec 部分很重要,因为执行将失败并出现以下错误:

                      /usr/local/bin/node /usr/local/bin/nodemon server.js
                      4 Oct 13:56:50 - [nodemon] v0.7.10
                      4 Oct 13:56:50 - [nodemon] to restart at any time, enter `rs`
                      4 Oct 13:56:50 - [nodemon] watching: /Users/foo/test
                      execvp(): No such file or directory
                      4 Oct 13:56:50 - [nodemon] starting `node server.js`
                      4 Oct 13:56:50 - [nodemon] exception in nodemon killing node
                      Error: spawn ENOENT
                          at errnoException (child_process.js:980:11)
                          at Process.ChildProcess._handle.onexit (child_process.js:771:34)
                      

                      该错误似乎是由于 WebStorm 在其路径上没有看到 node 可执行文件引起的。

                      解决此问题的方法是使用--exec /usr/local/bin/node 参数指定node 可执行文件的位置。

                      使用这些设置,nodemon 在从 WebStorm Run Configuration 运行时可以正常工作。

                      同样的技巧可能必须用于一些类似于 nodemon 的工具,例如node-supervisor.

                      【讨论】:

                      • 这适用于运行配置,但不适用于调试。在 webstorm 中使用 nodemon 进行调试有什么想法吗?
                      • 至少对于 Webstorm 8 EAP 和 nodemon 1.0.15,您不必再指定 --exec。我所要做的就是在“节点参数”中使用/usr/local/bin/nodemon
                      • @bernhardw:我也可以确认
                      猜你喜欢
                      • 2021-04-09
                      • 2019-02-08
                      • 1970-01-01
                      • 2017-06-26
                      • 2013-06-20
                      • 2019-08-05
                      • 2021-03-09
                      • 2019-11-06
                      • 1970-01-01
                      相关资源
                      最近更新 更多