gpt4 book ai didi

node.js - Grunt-contrib-watch 与 grunt-contrib-connect

转载 作者:搜寻专家 更新时间:2023-11-01 00:43:22 28 4
gpt4 key购买 nike

不幸的是,grunt-contrib-watchgrunt-contrib-connect看起来不太好。

关于 grunt-contrib-connect readme它说:

Note that this server only runs as long as grunt is running. Once grunt's tasks have completed, the web server stops. This behavior can be changed with the keepalive option, and can be enabled ad-hoc by running the task like grunt connect::keepalive.

很好。但是,如果我想与连接服务器一起运行监视任务怎么办?像这样:

connect: {
server: {
options: {
port: 8000,
hostname: 'localhost',
keepalive: true
}
}
},
watch: {
options: {
livereload: true
},
files: ['**'],
tasks: ['connect'],
}

此处,connect 任务在文件更改时运行。如果我将连接的 keepalive 选项设置为 true,那么 grunt-contrib-watch 将停止监视,因为它技术上还没有完成它的任务。如果我伪造了 keepalive 选项,那么连接服务器会在完成任务后死亡。

是的,我可以运行命令...

$ grunt connect
$ grunt watch

...在不同的 shell 中,但是没有办法用一个命令运行它们吗?

最佳答案

grunt-contrib-watch 中的 Livereload 会在下面的端口通知文件更改,您可以看到它位于 35729。

另一方面,grunt-contrib-connect 中的 livereload 监听端口 35729 的变化。

所以我们应该将它们配置为 -

connect: {
server: {
options: {
port: 8000,
hostname: 'localhost',
livereload: 35729
}
}
},
watch: {
options: {
livereload: 35729
},
files: ['**'],
tasks: []
}

您无需在此处提供“连接” 作为任务。由于重新加载的工作是由 livereload 在这里完成的。现在为了让这两个通过一个命令工作,我们将它们注册为 -

grunt.registerTask("server", ["connect", "watch"]);

现在运行连接,然后运行监视。现在通常 registerTasks 通过完成第一个任务然后第二个任务等等来工作。但是由于您所说的连接行为-

Note that this server only runs as long as grunt is running

Connect 只运行一次。但是 watch 会继续运行以寻找变化(保持 grunt 运行),从而保持连接服务器正常运行。

现在当你尝试

grunt server

一切都会像魅力一样运作。

关于node.js - Grunt-contrib-watch 与 grunt-contrib-connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27161147/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com