Javascript 咕噜+;Express+;LiveReload继续在默认端口3000上重新启动服务器

Javascript 咕噜+;Express+;LiveReload继续在默认端口3000上重新启动服务器,javascript,node.js,gruntjs,livereload,Javascript,Node.js,Gruntjs,Livereload,我有一个车把驱动的模板应用程序,它是通过一个简单的基于Express的Node.js服务器生成的。为了便于开发,我一直在使用Grunt将其设置为实时重新加载 我读过无数关于设置实时重新加载的博客和GitHub自述;这被证明是一个非常循环的琐事(一个页面链接到另一个页面,然后再链接到另一个页面,以此类推)。我读到的东西没有一个是一致的,所有的东西似乎都支持实时重新加载,但没有实际解释如何做——要找到一个明确的方法来完成这项工作,真是一件非常困难的事情 然而,我有一个工作,自我加载,快速驱动的项目,

我有一个车把驱动的模板应用程序,它是通过一个简单的基于Express的Node.js服务器生成的。为了便于开发,我一直在使用Grunt将其设置为实时重新加载

我读过无数关于设置实时重新加载的博客和GitHub自述;这被证明是一个非常循环的琐事(一个页面链接到另一个页面,然后再链接到另一个页面,以此类推)。我读到的东西没有一个是一致的,所有的东西似乎都支持实时重新加载,但没有实际解释如何做——要找到一个明确的方法来完成这项工作,真是一件非常困难的事情

然而,我有一个工作,自我加载,快速驱动的项目,通过以下方式:

grunfile.js

var files = [
    'markup/*',
    'examples/*'
]

module.exports = function(grunt) {
    require('load-grunt-tasks')(grunt)
    grunt.initConfig({
        express: {
            options: {
                port: 8080
            },
            dev: {
                options: {
                    port: 8080,
                    script: 'server.js',
                    background: true
                }
            }
        },
        watch: {
            options: {
                livereload: true
            },
            express: {
                files: files,
                tasks: ['express:dev'],
                options: {
                    spawn: false
                }
            },
        },
    })
    grunt.registerTask('default', ['express:dev', 'watch'])
}
Package.json

...
"devDependencies": {
    "connect-livereload": "^0.5.4",
    "grunt": "~0.4.5",
    "grunt-contrib-watch": "^1.0.0",
    "grunt-express-server": "^0.5.3",
    "load-grunt-tasks": "^3.5.0"
}
...
在我的Express应用程序server.js中:

// Live reload
app.use(require('connect-livereload')({
    port: 35729
}))

// Server
var server = app.listen(process.env.PORT || 8080, function() {
    console.log("Express app started on port " + server.address().port)
})
<script src="//localhost:35729/livereload.js"></script>
并且在my Handlebar driven index.html模板中:

// Live reload
app.use(require('connect-livereload')({
    port: 35729
}))

// Server
var server = app.listen(process.env.PORT || 8080, function() {
    console.log("Express app started on port " + server.address().port)
})
<script src="//localhost:35729/livereload.js"></script>
注意Express应用程序现在是如何监听
:3000
:8080
?发生什么事?我想是我的Grunfile里有什么东西没有设置好吧