grunt传参:更改less自动编译时参数无法保存怎么解决

发布于 2022-09-05 08:41:34 字数 1373 浏览 8 评论 0

项目用的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"%>'
                    }
                }
            }
        },

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千里故人稀 2022-09-12 08:41:34

Hi,

今天我也遇到了这个问题,研究了下Grunt API,

clipboard.png

发现可以用下面的方式去实现,

grunt.registerTask('default', function(arg) {
    var json = grunt.file.readJSON('package.json');
    grunt.config.set('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.config.set('themeStyle', json['theme'][arg]);
    grunt.config.set('logoName ', arg);
    grunt.task.run(['less', 'connect',  'watch']);
});
themeStyle: '',
logoName : '',
less: {
    compile: {
        expand: true,
        cwd: './',
        src: ['app/styles/src/**/*.less'],
        dest: './',
        ext: '.css',
        options: {
            modifyVars: {
                // 'proName': '<%= pkg.proName %>'
                'theme': '<%= themeStyle || "red"%>',
                'logoName': '<%= logoName || "HS"%>'
            }
        }
    }
},

Thanks,
Chasal

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文