cssmin not correctly handling @import

前端 未结 6 1670
粉色の甜心
粉色の甜心 2021-02-08 01:40

I am using cssmin on files containing @imports. cssmin is recursively importing local files correctly, but for imports that point to a URL the imports are left inline. This ma

相关标签:
6条回答
  • 2021-02-08 02:19

    I had something like this in the styles.scss:

    @import url(custom-fonts.css);
    

    My problem was the @import wasn't able to find the files because the root path was missing. Here's what I did with yeoman angular generator Gruntfile.js config:

    cssmin: {
      options: {
        root: '<%= yeoman.dist %>/styles/'
      }
    },
    

    Useful link grunt-contrib-cssmin issue #75

    0 讨论(0)
  • 2021-02-08 02:26

    Putting the imports at the top of my scss didn't work for me,I ended up importing the external stylesheets directly from the html:

    <link href="https://fonts.googleapis.com/icon?family=Material+Icons"
            rel="stylesheet">
      <link href="http://fonts.googleapis.com/css?family=Roboto:400,300"
                  rel="stylesheet">
    
      <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
      <!-- build:css(.) styles/vendor.css -->
      <!-- bower:css -->
    ......
    <!-- endbower -->
      <!-- endbuild -->
      <!-- build:css(.tmp) styles/app.css -->
      <link el="stylesheet" href="../bower_components/bootstrap/dist/css/bootstrap.css">
      <link rel="stylesheet" href="styles/app.css">
    
    0 讨论(0)
  • 2021-02-08 02:30

    I know this question for a very long time but i post this for anybody that looking for this issue on stack overflow ... just put your code in /!..../ like this:

    /*! * @import url('//fonts.googleapis.com/cssfamily=Roboto:300,400,400i,500,700,700i'); */
    

    it will be include in your destination min css but don't forget to use remote import in top of your page.

    0 讨论(0)
  • 2021-02-08 02:36

    I have exactly the same problem with cssmin and @import, and i found a solution with grunt concat:

    1. Create a concat grunt task that:
    2. Put @import url in the begining of mified css file and replaces references of @imports url for "".
    3. Execute task concat:cssImport after cssmin task.

    Grunt task Code: to execute (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']
                }
            } )}
    

    My inspiration comes from https://github.com/gruntjs/grunt-contrib-concat#custom-process-function.

    0 讨论(0)
  • 2021-02-08 02:37

    Use the following process:

    • Install node-less
    • import the files by compiling with less first
    • minify with cssmin

    References

    • node-less

    • LESS compile error

    0 讨论(0)
  • 2021-02-08 02:40

    I added the processImport: false option to grunt.

    'cssmin': {
      'options': {
        'processImport': false
      }
    }
    
    0 讨论(0)
提交回复
热议问题