【问题标题】:Grunt message: Fatal error: Port 35729 is already in use by another processGrunt 消息:致命错误:端口 35729 已被另一个进程使用
【发布时间】:2020-02-25 19:51:55
【问题描述】:

咕噜在工作。但是在将我的站点文件移动到一个目录之后,坐在根目录下,grunt 停止了工作:

致命错误:端口 35729 已被另一个进程使用。

在这种情况下路径重要吗?查看端口 35729,我发现 Grunt 是在该端口上运行的唯一进程。我杀死了那个进程,确认没有其他进程在 35729 上运行,然后再次运行 grunt,但仍然遇到与以前相同的致命错误。

尽管自从 grunt 工作以来我的配置文件都没有更改,但我想我会尝试使用“npm init”方法创建一个新的 package.json,然后再次运行“npm install”并确认它已下载“节点模块”。我还能尝试什么?

我在 Mac OS 10.10.5 上运行 Node v0.10.33

【问题讨论】:

  • 随机的想法,但我认为 Sublime 文本使用端口 35729,如果你打开了它,那就杀掉它:)(或者你可以在首选项中更改它)
  • Grunt 是该端口上的唯一进程。 Sublime Text 之前一直都是打开的,与 Grunt 没有冲突。
  • 在 Sublime 文本中检查 livereload:Sublime Text 2 > Preferences > Package Settings > Live Reload > Settings - User Paste in: { "port" : 35730 }
  • 这将覆盖现有设置 - 试试吧:)
  • 我在 Sublime Text 2 中没有 Live Reload 作为一个包,所以没有什么可以覆盖的。

标签: node.js grunt-contrib-watch


【解决方案1】:

不要在终端中使用Ctrl+C 停止进程。

Ctrl+Z 将继续运行。

通过sudo lsof -i :35729查找进程id

然后通过sudo kill -9 PID杀死进程

重新运行 grunt watch

【讨论】:

  • 如果是 docker 问题,请关闭并重新打开 ssh sesh
【解决方案2】:

就我而言,Grunt watch 已经在另一个项目中运行。所以我适当地更新了 Grunt 的监视任务,以便实时重新加载以在不同的端口上监视。

 watch: {
        main: {
            options: {
                livereload: 35730,
                livereloadOnError: false,
                spawn: false
            },
            files: [createFolderGlobs(['*.js', '*.less', '*.html']), '!_SpecRunner.html', '!.grunt'],
            tasks: [] //all the tasks are run dynamically during the watch event handler
        }
    }

指定livereload:PORT

【讨论】:

    【解决方案3】:

    问题是grunt-contrib-watch的实时重载:https://github.com/gruntjs/grunt-contrib-watch/blob/v1.0.0/tasks/lib/livereload.js#L19

    livereload 选项设置为 true 时不能有两个 grunt-watch。要么将livereload 选项之一设置为false,要么通过将livereload 选项从true 设置为35729 以外的其他值,例如live-reload: 1337,将liveelaod 的端口更改为其他值。

    查看文档了解更多信息:https://github.com/gruntjs/grunt-contrib-watch#optionslivereload

    否则,您可以运行任意数量的 grunt 进程。

    【讨论】:

      【解决方案4】:

      问题解决了。尽管 grunt-cli 是全局安装的,但 grunt 会随项目一起安装在本地。因此,当我将站点的文件移到一个目录上并从该新位置运行 grunt 时,我实际上是在启动第二个 grunt 实例,它发现该端口当然已经被移动文件之前启动的早期 grunt 实例占用。

      在我终止该进程后,grunt 运行没有问题。我无法使用 kill -9 杀死它,所以我使用 Mac 的活动监视器发出“强制退出”。

      【讨论】:

        【解决方案5】:

        解决方案:

        步骤 1

        以管理员身份运行命令行。然后运行下面提到的命令。在yourPortNumber 中输入您的端口号:

        netstat -ano | findstr : (yourPortNumber)
        

        第二步

        然后你在识别PID后执行这个命令。

        taskkill /PID  (typeyourPIDhere) /
        

        享受编码!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-16
          • 2019-01-08
          • 1970-01-01
          • 1970-01-01
          • 2020-10-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多