我正试图让不同项目的不同服务器触发一个网站的livereload工作。我正在使用Grunt.js和grunt-contrib-connect以及grunt-contrib-watch。
以下是一个例子:
现在让我们说,我在localhost:9800上运行一个应该受益于livereloading的网页 因此,在大多数只存在一个livereload进程的情况下,localhost中会有类似的东西:9800 / index.html:
<body>
...
<script type="text/javascript" charset="UTF-8" src="//localhost:35729/livereload.js"></script>
</body>
所以,对于多个livereload服务器,我认为我必须包含所有livereload脚本:
<body>
...
<script type="text/javascript" charset="UTF-8" src="//localhost:33333/livereload.js"></script>
<script type="text/javascript" charset="UTF-8" src="//localhost:44444/livereload.js"></script>
<script type="text/javascript" charset="UTF-8" src="//localhost:55555/livereload.js"></script>
</body>
哪个不行。只有第一个脚本会在浏览器中触发livereload。在grunt-contrib-watch的文档中,他们有一个关于在 watch 任务的不同目标中运行不同服务器的示例。你是如何真正做到这一点的?
感谢您的帮助
以下是我的测试任务:
watch: {
css: {
files: ['www/**/*.css'],
options: {
livereload: 33333
}
},
html: {
files: ['www/**/*.html'],
options: {
livereload: 44444
}
},
js: {
files: ['www/**/*.js'],
options: {
livereload: 55555
}
},
...
}
答案 0 :(得分:2)
此配置无效。
livereload.js实例化一个全局对象LiveReload见(livereload-js/src/startup.coffee)。 并且每个LiveReload对象只有一个可用的Web插槽,因此您无法使用3个插槽。
我想拥有与您相同的配置,但今天我找不到适合它的工作