Mar*_*ore 11 node.js grunt-contrib-watch
Grunt正在工作.但是将我的网站文件移到一个目录后,坐在root上,grunt停止工作:
致命错误:端口35729已被其他进程使用.
在这种情况下,路径是否重要?看看35729端口,我发现Grunt是该端口上唯一运行的进程.我杀了那个进程,确认没有其他进程在35729上运行,然后再次运行grunt,但仍然像以前一样得到同样的致命错误.
虽然我的配置文件没有为grunt改变,因为它正在工作,我想我会尝试使用"npm init"方法创建一个新的package.json,然后再次运行"npm install"并确认它下载了"node_modules".我还能尝试什么?
我在Mac OS 10.10.5上运行Node v0.10.33
Was*_*han 27
不要在终端中使用Ctrl + C停止进程.
Ctrl + Z将使其保持运行.
通过sudo lsof -i:35729查找进程ID
然后通过sudo kill -9 PID终止进程
重新运行咕噜咕噜的表
在我的例子中,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
}
}
Run Code Online (Sandbox Code Playgroud)
指定的livereload:PORT
问题解决了。尽管 grunt-cli 是全局安装的,但 grunt 是随项目本地安装的。因此,当我将站点的文件移至一个目录并从该新位置运行 grunt 时,我实际上启动了第二个 grunt 实例,它发现该端口当然已被移动文件之前启动的较早的 grunt 实例占用。
在我杀死该进程后,grunt 运行没有问题。我无法使用kill -9 杀死它,所以我使用Mac 的活动监视器发出“强制退出”。