2014-02-10 59 views
0

我用grunt和cssmin來縮小我的css。grunt cssmin .min.css文件

但是,在我的CSS資產文件夾中,我有一些css,它有一個.min.css擴展名。因此,當我運行grunt時,只有源文件夾中的.css文件將被縮小到生成文件夾中。源文件夾中具有.min.css的文件將在build文件夾中找到,但.min擴展名將會丟失。即bootstrap.min.css將成爲bootstrap.css

我Gruntfile.js是如下

module.exports = function(grunt) { 

    // Project configuration. 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    uglify: { 
     options: { 
     banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' 
     }, 
     build: { 
     files: [{ 
      expand: true, 
      src: '**/*.js', 
      dest: 'resources/front/js', 
      cwd: 'assets/front/js' 
     }] 
     } 
    }, 
    cssmin: { 
     minify: { 
     expand: true, 
     cwd: 'assets/front/css/', 
     src: ['*.css', '*.min.css'], 
     dest: 'resources/front/css/', 
     ext: '.css' 
     } 
    } 

    }); 

    // Load the plugin that provides the "uglify" task. 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-cssmin'); 

    // Default task(s). 
    grunt.registerTask('default', ['uglify','cssmin']); 

}; 

有沒有什麼辦法了.min.css文件仍然可以微細化以及在build文件夾中並保留正確的'.min.css'擴展名?

+0

那麼你的問題到底是什麼?你有'!* .min.css'這將排除擴展名的文件,這是什麼問題? –

+0

Ops沒有添加我的問題。請參閱有問題的編輯。想知道是否有什麼辦法在縮小這些擴展名時保留.min.css擴展名.min.css – edelweiss

+0

不要使用縮小器來複制已壓縮的文件。使用grunt-contrib-copy移動已經縮小的資產 – nschonni

回答

2

編輯

this answer超過文件名重命名最多的控制。


試試這個:

cssmin: { 
    minify: { 
    files: [{ 
     expand: true, 
     cwd: 'assets/front/css/', 
     src: ['*.css', '!*.min.css'], 
     dest: 'resources/front/css/', 
     ext: '.css' 
    }, { 
     expand: true, 
     cwd: 'assets/front/css/', 
     src: ['*.min.css'], 
     dest: 'resources/front/css/', 
     ext: '.min.css' 
    }] 
    } 
} 

第一個文件塊纔會再縮小*.css文件並保留.css擴展這些文件。第二個文件塊將僅縮小文件*.min.css並保留這些文件的.min.css擴展名。

+0

是有效的。如果CSS文件名是'jquery1.8.3.min.css,我該如何迎合 – edelweiss

+0

Check [this](http://stackoverflow.com/a/18999917/734040)的答案。 –

2

我使用grunt-contrib-copy:只複製* .min.css到dest。

首先,排除所有* .min.css文件

cssmin:{ 
    min:{ 
     files:[{ 
      expand:true, 
      cwd:'css', 
      src:['*.css','!*.min.css'], 
      dest:'release/css', 
      ext:'.min.css' 
      }] 
     } 
    } 

其次,從css文件夾中複製所有* .min.css作爲SRC發佈/ css文件夾作爲DEST

copy:{ 
     main:{ 
      files:[{ 
        // Copy *.min.css 
        expand:true, 
        src:['css/**/*.min.css'], 
        dest:'release/' 
        }] 
      } 
     } 
+1

我不能說:你是否感謝Decade Moon有用的答案或注意到你的不同解決方案? –

+0

我的意思是我解決這個問題的另一種方式,我使用grunt-contrib-copy,從src /複製所有* .min.css到dest /,Decade的比我好:0 –

+0

你的答案有點抽象。格式化它以便更好地理解。 –