Gruntjs Grunt文件连接服务器并监视

Gruntjs Grunt文件连接服务器并监视,gruntjs,connect,watch,Gruntjs,Connect,Watch,我这里有一个简单的gruntjs,它执行sass和js 我想用命令行中的一个命令打开服务器和手表 我可以通过grunt watch启动手表,通过grunt connect启动服务器 我原以为咕噜发球可以同时完成两项任务,但只完成第一项任务 我可以用一个命令打开服务器和手表吗 module.exports = function(grunt) { require('load-grunt-tasks')(grunt); // Project

我这里有一个简单的gruntjs,它执行sass和js

我想用命令行中的一个命令打开服务器和手表

我可以通过grunt watch启动手表,通过grunt connect启动服务器

我原以为咕噜发球可以同时完成两项任务,但只完成第一项任务

我可以用一个命令打开服务器和手表吗

        module.exports = function(grunt) {

          require('load-grunt-tasks')(grunt);

          // Project configuration.
          grunt.initConfig({
            pkg: grunt.file.readJSON('package.json'),

            connect: {
              server: {
                options: {
                  port: 8000,
                  hostname: '*',
                  keepalive: true

                }
              }
            },

            // Concatenation
            concat: {

              js: {
                // List forum JS files
                src: ['bower_components/sass-bootstrap/dist/js/bootstrap.js','js/main.js'],
                dest: 'js/main-all.js'
              },
              css: {
                // List forum JS files
                src: ['bower_components/sass-bootstrap/dist/css/bootstrap.css','css/output-main.css'],
                dest: 'css/styles.css'
              },
            },

            // Sass processing
            sass: {
              dist: {
                files: {
                  "css/output-main.css": "css/main.scss"
                }
              }
            },

            // File Watcher
            watch: {
              grunt: {
                files: ['GruntFile.js'],
                options:{
                  livereload: true
                }
              },
              js: {
                files: ['js/*.js'],
                tasks: ['concat:js'],
                options:{
                  livereload: true
                }
              },
              sass: {
                files: ['css/*.scss'],
                tasks: ['sass', 'concat:css'],
                options:{
                  livereload: true
                }
              }
            }

          });

          grunt.registerTask('serve', ['connect:server','watch:sass']);

        };