我在包含@imports的文件上使用cssmin。 cssmin正在递归地正确导入本地文件,但是对于指向URL的导入,导入将保留为内联。这使得生成的缩小CSS无效,因为@规则必须位于文件的开头。有谁知道一个很好的解决方案或解决此问题的方法?

最佳答案

我对 cssmin @import 有着完全相同的问题,并且我发现了 grunt concat 的解决方案:

  • 创建一个concat grunt任务,它是:
  • 将@import url放在缩小的css文件的开头,并将@imports url的引用替换为“”。
  • 在cssmin任务之后执行任务concat:cssImport。


  •  grunt.initConfig({
       concat: {
          cssImport: {
                options: {
    
                   process: function(src, filepath) {
                    return "@import url(http://fonts.googleapis.com/css?family=Roboto:400,300,900);"+src.replace('@import url(http://fonts.googleapis.com/css?family=Roboto:400,300,900);', '');
                  }
               }
             },
                files: {
                    'your_location_file_origin/file.full.min.css': ['your_location_file_destination/file.full.min.css']
                }
            } )}
    

    我的灵感来自https://github.com/gruntjs/grunt-contrib-concat#custom-process-function

    09-17 16:58