我正在尝试使用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']);
}
答案 0 :(得分:7)
添加
<script src="//localhost:1337/livereload.js"></script>
到你想要livereload的页面。 1337是你在grunt文件中设置的端口。
options: {
livereload: 1337
},
答案 1 :(得分:6)
您可以在bash / terminal窗口中手动关闭livereload服务器,如下所示:
curl localhost:35279/kill
答案 2 :(得分:3)
您使用的是Sublime Text和LiveReload包吗?众所周知会导致这个问题。如果是这样,请在Sublime Text中禁用或卸载软件包。
答案 3 :(得分:1)
我在流浪汉VM上使用grunt,所以我需要grunt在端口80上运行,首先我将停止apache并启动grunt服务,它运行正常。
然而,有时因为某些原因而咕噜声在停止后不会释放端口。例如:我通常会停止grunt编辑Gruntfile.js并重新启动它,但有时它不会启动并会抱怨使用por 80的人。
对我有用的唯一解决方案是重启shell会话并重试。
我使用ZSH并且我注意到在grunt中断之后如果我尝试退出shell,ZSH抱怨&#39;挂起的工作&#39;,但如果我仍然退出并重新启动会话并再次尝试grunt服务它将工作
答案 4 :(得分:0)
如果要使用端口终止进程,可以执行以下操作:
$ 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
应该可以正常工作:)