Gruntjs Grunt less won';不能替换css文件

Gruntjs Grunt less won';不能替换css文件,gruntjs,less,grunt-contrib-less,Gruntjs,Less,Grunt Contrib Less,我使用grunt contrib less和grunt contrib watch在更改时自动编译我的less文件。 当css不存在时,grunt会正常编译它。当css已经存在并且watch看到更改的文件较少时,css文件不会被修改。我每次都要删除它,让grunt修改后重新创建它 更少配置: less: { options: { banner: '<%= meta.banner %>' }, dev: { options: {

我使用grunt contrib less和grunt contrib watch在更改时自动编译我的less文件。 当css不存在时,grunt会正常编译它。当css已经存在并且watch看到更改的文件较少时,css文件不会被修改。我每次都要删除它,让grunt修改后重新创建它

更少配置:

less: {
    options: {
        banner: '<%= meta.banner %>'
    },
    dev: {
        options: {
            sourceMap: true,
            sourceMapFileInline: true,
            compress: true
        },
        src: '<%= meta.dev.less %>/main.less',
        dest: '<%= meta.prod.css %>/main.css'
    },
    prod: {
        options: {
            plugins: [
                new( require( 'less-plugin-clean-css' ) )( {
                    'advanced': true,
                    'compatibility': 'ie9'
                } )
            ],
        },
        src: '<%= meta.dev.less %>/main.less',
        dest: '<%= meta.prod.css %>/main.css'
    }
},
Grunt输出(详细)


您是否添加了正确的手表配置

 watch: {
  less: {
    files: ['less/**/*.less'], // which files to watch
    tasks: ['less'],
    options: {
      nospawn: true
    }
  }
}
使用您的配置文件运行grunt:grunt.registerTask('myprofile',['less:dev','watch'])

以下是发生的情况:

  • 您可以修改
    菜单。减少
  • watch检测到并运行
    newer:less:dev
  • less:dev
    使用文件
    main.less
    作为唯一源(而不是
    菜单.less
  • 该文件没有更改,因此
    newer
    断定它不需要再次运行该任务
我想
main.less
包括
menu.less
,但是
newer
不知道它。
所以我建议的解决办法是去掉
较新的
部件。

嗨,我用Grunfile中的元素编辑了我的问题。你确定livereload工作正常吗?例如,如果您更改了一个html,请查看是否重新加载它?我都不明白什么是“新”任务。不,我不使用livereload。但是watch工作正常,当我更改less文件时,它会做出反应,如果它不存在,less会创建css文件。当我更新less文件时,我添加了grunt的详细输出。如果我在main.less中添加css行,你是对的。所以我去掉了新的手表任务,一切都很好。非常感谢。
grunt.registerTask( 'default', [ 'less:dev', 'concat', 'imagemin', 'copy', 'watch' ] );
>> File "dev\less\elements\menu.less" changed.
Initializing
Command-line options: --verbose

Reading "Gruntfile.js" Gruntfile...OK

Registering Gruntfile tasks.
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK
Loading "Gruntfile.js" tasks...OK
+ default, prod

Running tasks: newer:less:dev

Loading "grunt-newer" plugin

Registering "D:\[...]\static\node_modules\grunt-newer\tasks" tasks.
Loading "newer.js" tasks...OK
+ any-newer, newer, newer-clean, newer-postrun

Running "newer:less:dev" (newer) task
Options: cache="D:\\[...]\\static\\node_modules\\grunt-newer\\.cache", override=undefined
Files: dev/less/main.less -> dist/css/main.css
No newer files to process.
 watch: {
  less: {
    files: ['less/**/*.less'], // which files to watch
    tasks: ['less'],
    options: {
      nospawn: true
    }
  }
}