Apache 它说:";“运行监视任务”;及;等待……”;,但是,除非我编辑的文件是Gruntfile本身,否则watch永远不会运行

Apache 它说:";“运行监视任务”;及;等待……”;,但是,除非我编辑的文件是Gruntfile本身,否则watch永远不会运行,apache,laravel-4,gruntjs,grunt-contrib-watch,Apache,Laravel 4,Gruntjs,Grunt Contrib Watch,我在一个新的Laravel项目中使用Grunt时遇到问题。目前,我似乎无法正确配置/运行grunt contrib watch 目录结构: |-- app |-- node_modules |-- Gruntfile.js |-- package.json |-- public |---- bower_components |---- css |------ dist |------ header.css |---- js |------ dist |------ app.js 我的Larav

我在一个新的Laravel项目中使用Grunt时遇到问题。目前,我似乎无法正确配置/运行grunt contrib watch

目录结构:

|-- app
|-- node_modules
|-- Gruntfile.js
|-- package.json
|-- public
|---- bower_components
|---- css
|------ dist
|------ header.css
|---- js
|------ dist
|------ app.js
我的Laravel项目设置用于从app/config/View.php中的公用文件夹中查找视图文件:

'paths' => array(__DIR__.'/../../public'),
安装了Laravel,安装了Apache,我正在尝试使用Grunt测试重新加载更改。每当我运行grunt时,它都会显示“Running watch task”和“Waiting…”,但是,除非我编辑的文件是GrunFile本身,否则watch不会显示为运行

这是我的Grunfile文件:

module.exports = function(grunt) {

    /* Config for Project */
    grunt.initConfig({

        pkg: grunt.file.readJSON('package.json'),

        cssmin: {
            dist: {
                src: 'public/css/*.css',
                dest: 'css/dist/main.min.css'
            }
        },

        uglify: {
            dist: {
                src: ['public/js/*.js'],
                dest: 'js/dist/app.min.js'
            }
        },

        watch: {
            js: {
                files: ['**/*.js'],
                tasks: ['uglify'],
                options: {
                    reload: true
                }
            },
            css: {
                files: ['**/*.css'],
                tasks: ['cssmin'],
                options: {
                    reload: true
                }
            }
        }

    });

    grunt.event.on('watch', function(action, filepath, target) {
        grunt.log.writeln(target + ': ' + filepath + ' has ' + action);
    });

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-less');
    grunt.loadNpmTasks('grunt-contrib-uglify');


    // grunt.registerTask('buildcss',  ['sass', 'cssc', 'cssmin']);
    grunt.registerTask('default', ['watch',]);
};

有没有人知道我配置错了什么/为什么watch没有运行?

你的咕噜声:watch任务正在做你让它做的事情。下面是任务注释

    watch: {
        // this means, whenever a .js file changes, run "grunt uglify"
        js: {
            files: ['**/*.js'],
            tasks: ['uglify'],
            options: {
                reload: true
            }
        },
        // this means, whenever a .css file changes, run "grunt cssmin"
        css: {
            files: ['**/*.css'],
            tasks: ['cssmin'],
            options: {
                reload: true
            }
        }
    }
编译不会减少,因为您没有告诉
grunt:watch
在文件更改时编译更少的文件

您需要另一个插件来编译less文件,检查并配置该插件任务,然后添加一个新的
grunt:watch
指令,该指令应该类似于:

        less: {
            // this means, whenever a .less file changes, run 'grunt less'
            files: ['**/*.less'],
            tasks: ['less']
        }

希望这有帮助

谢谢您的回答。:)是的,这至少是我希望这些任务做的。我所遇到的问题是watch运行:watch似乎只在我更改Grunfile时运行,但在public/css或public/js.hmmm中更改任何文件时都不会运行,这很奇怪。。您的配置没有问题,我看到您尝试使用
reload:true
和添加捕获
watch
上的事件来调试它。。尝试删除所有这些,并测试指向单个js文件的GrunFile,类似于
文件:['path/simple.js']
并运行
grunt-d-v watch
它将为我们提供有关任务的更多信息