grunt watch livereload致命错误:端口35279已被其他进程占用

10

我正在尝试使用livereload和watch。我一直收到消息“致命错误:端口35279已被另一个进程占用”。我已经更改了livereload的端口,但是没有文件被重新加载。

module.exports = function(grunt) {
grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    compass: {
      dist: {
        options: {
          cssDir: 'stylesheets',
          sassDir: 'stylesheets/sass/',
          imagesDir: 'images',
          javascriptsDir: 'scripts',
          require: ['sass-globbing','modular-scale'],
          force: true
        }
      }
    },
    cssmin: {
      minify: {
        expand: true,
        cwd: 'stylesheets',
        src: ['*.css', '!*.min.css'],
        dest: 'stylesheets',
        ext: '.min.css'
      }
    },
    watch: {
        options: {
            livereload: true
        },
        sass: {
            files: 'stylesheets/sass/*.scss',
            tasks: ['compass']
        },
        css: {
            files: 'stylesheets/*.css',
            tasks: ['cssmin']
        },
        html: {
            files: ['index.html','**/*.css']
        }
    }
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.registerTask('default',['compass','watch']);

}

5个回答

7

添加

 <script src="//localhost:1337/livereload.js"></script>

打开你想要启用LiveReload的页面。1337是在grunt文件中设置的端口号。

options: {
        livereload: 1337
},

6
您可以在 bash/终端窗口中手动关闭实时重载服务器,方法如下:
curl localhost:35279/kill

更多信息请查看:https://github.com/mklabs/tiny-lr


1
curl: (7) Failed to connect to localhost port 35279: Connection refused - frhd
2
你是不是想使用默认的35729端口来进行livereload操作? - Abe

3

您是否正在使用Sublime Text和LiveReload包?已知这会导致此问题。如果是,请在Sublime Text中禁用或卸载该包。


1

我在vagrant虚拟机上使用grunt,所以需要grunt在80端口上运行,首先我会停止apache并启动grunt serve,这样就可以正常工作。

然而,有时候由于某些原因,grunt停止后不会释放端口。例如:通常我会停止grunt来编辑Gruntfile.js并重新启动它,但有时它无法启动并抱怨某人正在使用端口80。

对我有效的唯一解决方案是重新启动您的shell会话并重试。

我使用ZSH,如果grunt崩溃,我注意到如果我尝试退出shell,ZSH会抱怨“待处理作业”,但如果我仍然退出并重新启动会话,再次尝试grunt serve,它将起作用。


1
如果您想使用端口终止进程,可以执行以下操作:
$ lsof -n -i4TCP:35729
COMMAND   PID      USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
node    15723  testuser   24u  IPv6 0x71823b3990749ea5      0t0  TCP *:35729 (LISTEN)

现在你已经获得了监听你正在访问的端口的进程的PID,所以你可以使用以下命令来终止它:
$ kill -9 15723

现在运行grunt应该可以正常工作 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接