Gruntjs 设置grunt以启动&;实时重新加载浏览器(使用最少的插件)

Gruntjs 设置grunt以启动&;实时重新加载浏览器(使用最少的插件),gruntjs,livereload,grunt-contrib-watch,grunt-contrib-connect,Gruntjs,Livereload,Grunt Contrib Watch,Grunt Contrib Connect,我正在设置一个web项目,希望使用grunt实现自动化和工作流。 我有sass、jshint、jsdocs和minifier,它们都玩得很好,但是我在从grunt shell启动和重新加载浏览器时遇到了很多麻烦 我有两个这样做的条件: 没有浏览器插件。(我希望它能在回购协议中直接运行;“npm安装”、“grunt”) 将npm模块保持在最小值。(理想情况下,只需grunt contrib手表和grunt contrib连接) 这是我对这2个项目的配置: connect: { option

我正在设置一个web项目,希望使用grunt实现自动化和工作流。 我有sass、jshint、jsdocs和minifier,它们都玩得很好,但是我在从grunt shell启动和重新加载浏览器时遇到了很多麻烦

我有两个这样做的条件:

没有浏览器插件。(我希望它能在回购协议中直接运行;“npm安装”、“grunt”) 将npm模块保持在最小值。(理想情况下,只需grunt contrib手表和grunt contrib连接)

这是我对这2个项目的配置:

connect: {
    options: {
        base: 'app/',
        port: '8888',
        livereload: true
    }
},

watch: {
    all: {
        files: [
            'gruntfile.js',
            'app/index.html',
            'app/partials/*.html',
            'app/styles/sass/*.scss',
            'app/scripts/*.js'
        ],
        tasks: ['default'],
        options: {
            livereload: true
        }
    }
}
在测试中,我还尝试了:

connect: {
    options: {
        base: "app/",
        port: 8888,
        open: {
            target: 'app/index.html'
        }
    }
}
Watch会告诉我文件何时更改,但运行默认任务(或生成默认任务的任何子任务)不会启动浏览器/页面,并且似乎不会重新加载

我在grunt open上取得了一些成功,但我相信在版本0.6.0之后,只要grunt contrib watch就可以实现它

-----附加的 我也不确定grunt contrib connect是否正在运行

grunt.registerTask('serve',   ['sass', 'connect', 'watch']);
grunt.registerTask('default', ['jshint', 'serve']);
在下面的结果中,我看不到连接的任何计时,我猜任务没有被测量,因为它并行运行,但这是正在发生的吗

Execution Time 
loading tasks  12ms  ▇▇▇▇▇ 10%
jshint:src     78ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 62%
sass:all       11ms  ▇▇▇▇▇ 9%
watch          24ms  ▇▇▇▇▇▇▇▇▇ 19%
Total 126ms

嗯,不确定是否是这样,但通过您的更新,我发现,
connect
永远不会运行,因为您没有指定目标:

connect: {
    server: {  // try adding this block
        options: {
            base: 'app/',
            port: '8888',
            livereload: true
        }
    }
},
否则,这看起来基本上是正确的,但您也可以显式地声明要实时重新加载的端口:

watch: {
    all: {
        files: [
            // ...
        ],
        tasks: ['default'],
        options: {
            livereload: 8888  // changed...
        }
    }
}

尝试了您的更改,在我点击“保存”时,浏览器就生成了。谢谢你的帮助。没问题,很高兴这是一个简单的解决办法。