项目用的grunt打包以及自动编译less,需要传参数确定皮肤类型等数据。
grunt dev:args
同时watch了less的修改情况。
问题是less修改之后grunt重新编译less,就没有了参数,但是less需要这些参数来确定颜色、logo名等数据。
尝试过在grunt定义一个变量到grunt对象,但是依然读取不到
请问怎样才能保证watch的时候能拿到第一次的参数?
部分grunt代码如下
grunt.registerTask('default', function(arg) {
var json = grunt.file.readJSON('package.json');
grunt.themeStyle = json['theme'][arg];
grunt.task.run(['clean', 'copy', 'less', 'requirejs', 'concat', 'cssmin', 'filerev', 'usemin', 'imagemin', 'htmlmin']);
});
grunt.registerTask('dev', function(arg) {
var json = grunt.file.readJSON('package.json');
grunt.themeStyle = json['theme'][arg];
grunt.logoName = arg;
grunt.task.run(['less', 'connect', 'watch']);
});
less: {
compile: {
expand: true,
cwd: './',
src: ['app/styles/src/**/*.less'],
dest: './',
ext: '.css',
options: {
modifyVars: {
// 'proName': '<%= pkg.proName %>'
'theme': '<%= grunt.themeStyle || "red"%>',
'logoName': '<%= grunt.logoName || "HS"%>'
}
}
}
},
Hi,
今天我也遇到了这个问题,研究了下Grunt API,
发现可以用下面的方式去实现,
Thanks,
Chasal