使用Grunt处理相关文件并重写路径

时间:2014-04-01 16:38:43

标签: css gruntjs font-awesome bower grunt-contrib-cssmin

这是我的Gruntfile.jsassetsBower文件夹):

module.exports = function(grunt) {
    grunt.initConfig({
        distFolder: 'dist',
        pkg: grunt.file.readJSON('package.json'),
        concat: {
            options: {
                separator: ';',
            },
            dist: {
                src: [
                    'assets/jquery/dist/jquery.js',
                    'assets/jquery-ui/ui/jquery-ui.js',
                    'assets/jsplumb/dist/js/jquery.jsPlumb-1.5.5.js'
                ],
                dest: '<%= distFolder %>/main.js',
            },
        },
        uglify: {
            dist: {
                src: 'dist/main.js',
                dest: 'dist/main.min.js',
            },
        },
        cssmin: {
            combine: {
                files: {
                    'dist/main.min.css': [
                        'assets/font-awesome/css/font-awesome.min.css',
                        'assets/jquery-ui/themes/base/jquery-ui.css',
                    ],
                }
            }
        },
    });

    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-cssmin');

    grunt.registerTask('build', ['concat', 'uglify']);
};

一切正常,但正如我所怀疑的那样,使用grunt-contrib-mincss时,Font-awesome将失去与其字体的连接。

我可以使用Grunt自动执行类似的操作吗?

  • 将字体文件从assets/font-awesome/fonts/复制到dist/fonts/
  • url(../fonts/重写为url(fonts/

提前致谢!

1 个答案:

答案 0 :(得分:1)

bower组件或供应商中的字体,图像,@导入可能相对或绝对取决于组件本身,您应该配置cssmin任务以将相对资源重写为dist路径中的正确路径。 使用以下代码,所有资源网址都将使用绝对网址重写。

cssmin: {
    options: {
        root: 'app'
    },
    combine: {
        files: {
            'dist/main.min.css': [
                'app/bower_components/lib1/main.css',
                'app/bower_components/jquery-ui/themes/base/jquery-ui.css',
            ]
        }
    }
}

将root选项设置为输入文件的基本路径非常重要。在你的情况下,我相信你应该将root选项设置为&#34; /&#34;或&#34;&#34;

如果你告诉我你的项目结构,我可以提供更多帮助。

我虽然你的项目结构是这样的

/
/资产
/ other_files
/ DIST