Grunt usemin前端自動化打包流程


前端優化是盡量減少http請求,所以我們需要盡量合並壓縮文件,然后調用壓縮后的文件,比如多個css文件壓縮成一個,多個js文件合並壓縮等,usemin能夠自動在html中使用壓縮后的文件,達到上面的目的。

上圖是完整打包后的文件目錄,原始目錄是assets,打包發布的文件是dist.

gruntfile.js文件內容:

module.exports = function(grunt) {

    grunt.config.init({
      clean:{
          src:"dist/"
      },
      useminPrepare: {
          html: 'index.html',
          options: {
            dest: 'dist'
          }
      },
        usemin: {
            html: ['dist/index.html']
        },
        uglify: {
            'dist/js/app.min.js': ['assets/js/*.js']
        },
        copy: {
            html: {
                src: './index.html',
                dest: 'dist/index.html'
            }
        },
        cssmin:{
                'dist/css/app.min.css': ['assets/css/*.css']
        }
    });
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-usemin');
    grunt.registerTask('default',[
        'clean',
        'copy:html',
        'useminPrepare',
        'uglify',
        'cssmin',
        'usemin'
    ]);
}

原始的index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Usemin test</title>
    <!-- build:css dist/css/app.min.css -->
      <link rel="stylesheet" type="text/css" href="./assets/css/style.css" media="screen" />
    <!-- endbuild -->
  </head>
  <body>
  
  </body>
  <!-- build:js dist/js/app.min.js -->
    <script src="./assets/js/foo.js"></script>
    <script src="./assets/js/bar.js"></script>
  <!-- endbuild -->  
</html>

打包后的index.html

<!DOCTYPE html>
<html>
  <head>
    <title>Usemin test</title>
    <link rel="stylesheet" href="dist/css/app.min.css" media="screen"/>
  </head>
  <body>
  
  </body>
  <script src="dist/js/app.min.js"></script>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM