为什么 grunt 不重新加载我更新的较少文件?



每次更改其中一个文件时,我都试图让Grunt处理我的较少文件。

我有一个"监视"任务在工作,它说当我进行更改时,它正在处理文件,并输出更改的正确文件,所以我的监视在工作,但我所做的更改没有在css文件上进行。

我的文件结构像这个

-样式globals.less无组件-菜单菜单.less-收割台header.less

components.less文件是一组较少的mixin,用于抓取其他.less文件,如@import "menu/menu.less";

在我的咕哝文件中,我有

较少:{开发:{选项:{路径:['./app/vendor/modern touch less','./app/styles']},文件:{"/app/styles/modern touch.css':'./app/vendor/modern touch less/style.less',"/app/styles/components.css':'./app/styles/components.less'}}},手表:{js:{文件:['/scripts/{,*/}*.js','/styles/{,[/}*.less'],任务:['newer:jshint:all,less'],选项:{利韦拉德:真的}},样式:{文件:["./styles/{,*/}*.*","./vendor/{,[/}*.less"],tasks:['less','newer:copy:styles','autorefixer'],选项:{nospawn:真的,利韦拉德:真的}},}

当我第一次启动应用程序时,较少的文件会构建到正确的components.css文件中,但在更改文件后,components.css文件不会更新。

Grunt由启动

grunt.task.run(['clean:server',"bower install",'concurrent:server',"较少","autoprefixer",'connect:livereload',"手表","因果报应"])

也许您可以尝试简化配置,将任务拆分为在适当的文件集上运行。

watch: {
js: {
files: ['/scripts/{,*/}*.js'],
tasks: ['newer:jshint:all'],
options: {
livereload: true
}
},
styles: {
files: ['./styles/{,*/}*.*','./vendor/{,*/}*.less'],
tasks: ['less','newer:copy:styles', 'autoprefixer'],
options: {
nospawn: true,
livereload: true
}
},
}

在最初的手表配置中,watch.js.tasks array['newer:jshint:all, less'],这看起来像是一个拼写错误,应该是['newer:jshint:all', 'less']。这可能也会解决问题,但我会考虑只在受影响的文件上运行任务。

最新更新