0

这是我的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']);
};

一切正常,但正如我所怀疑的那样,Font-awesome 在使用grunt-contrib-mincss.

我可以用 Grunt 自动化它会做类似的事情吗?

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

提前致谢!

4

1 回答 1

1

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

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 选项设置为“/”或“”

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

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

//
assets
/other_files
/dist

于 2014-04-07T10:58:20.633 回答