10

我正在尝试将 livereload 与手表一起使用。我不断收到消息“致命错误:端口 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']);

}

4

5 回答 5

7

添加

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

到你想要 livereload 的页面。1337 是您在 grunt 文件中设置的端口。

options: {
        livereload: 1337
},
于 2014-01-03T20:31:06.543 回答
6

您可以在 bash/终端窗口中手动关闭 livereload 服务器,如下所示:

curl localhost:35279/kill

更多信息在这里:https ://github.com/mklabs/tiny-lr

于 2014-02-01T08:07:51.490 回答
3

你在使用 Sublime Text 和 LiveReload 包吗?已知会导致此问题。如果是这样,请禁用或卸载 Sublime Text 中的包。

于 2013-10-29T22:03:04.933 回答
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应该可以正常工作:)

于 2015-12-02T20:57:54.703 回答
1

我在 vagrant VM 上使用 grunt,所以我需要 grunt 在端口 80 上运行,首先我会停止 apache 并启动 grunt serve,它工作得很好。

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

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

我使用 ZSH,我注意到在 grunt 中断后,如果我尝试退出 shell,ZSH 会抱怨“待定作业”,但如果我无论如何退出并重新启动会话并再次尝试 grunt serve,它将起作用。

于 2015-09-28T17:21:13.037 回答