javascript - 使用 CSS 和 Javascript 缩小单个 HTML 文件的 Grunt 任务

标签 javascript html gruntjs minify

我正在做一个登录页面,我希望它尽可能轻巧,以便尽可能快地加载。我只有一个依赖项(一个配置文件),其他所有内容都编码在一个名为 index.html 的 html 文件中。

虽然我在分别缩小 JS、HTML 和 CSS 方面没有问题,例如,在它们各自的 .js、.html 和 .css 文件中,但我似乎找不到一种方法来缩小包含3 个不同的方面。

对于我使用的 HTML grunt-contrib-htmlmin但我的主要目标是缩小该文件上的 js。

我知道我的目标是 2 或 3KB,我有缓存作为我的 friend 等,但原则上我想知道是否有直接的方法来实现,或者另一方面我需要组装最终的单独缩小后的 index.html 文件。

提前致谢。

最佳答案

按照@Will 的建议,我确实通过混合我提到的 3 个插件加上 grunt-Process HTML 来实现这一点。 @Will 建议的。

我将解决此问题的必要步骤留给您,只需将路径替换为您自己的即可。

我的路径:

 .
 ..
 index.html
 styles.css
 index.js

在控制台上:

npm install grunt-contrib-clean --save-dev
npm install grunt-contrib-htmlmin --save-dev
npm install grunt-processhtml --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-contrib-cssmin --save-dev

Gruntfile.js:

module.exports = function (grunt) {

  grunt.initConfig({
     pkg: grunt.file.readJSON('package.json'),
     cssmin: {
       minify: {
         options: {
           banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
         },
         expand: true,
         src: ['*.css', '!*.min.css'],
         dest: 'dist/',
         ext: '.min.css'
       }
     },
     uglify: {
       options: {
         banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
       },
       build: {
         src: 'index.js',
         dest: 'dist/index.min.js'
       }
     },
     processhtml: {
       dist: {
         options: {
           process: true,
           data: {
             title: 'My app',
             message: 'This is production distribution'
           }
         },
         files: {
           'dist/index.min.html': ['index.html']
         }
       }
     },
     htmlmin: {
       dist: {
         options: {
           removeComments: true,
           collapseWhitespace: true
         },
         files: {
           'dist/index.html': 'dist/index.min.html'
         }
       }
     },

     clean: ['dist*//*.min.*']
   });

  grunt.loadNpmTasks('grunt-contrib-htmlmin');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-cssmin');
  grunt.loadNpmTasks('grunt-processhtml');
  grunt.loadNpmTasks('grunt-contrib-clean');
  grunt.registerTask('default', ['cssmin','uglify', 'processhtml', 'htmlmin','clean']);
  grunt.registerTask('build', ['cssmin','uglify', 'htmlmin', 'processhtml']);
};

关于javascript - 使用 CSS 和 Javascript 缩小单个 HTML 文件的 Grunt 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23226450/

相关文章:

c# - DateTime 到 javascript 日期

javascript - 复选框 - 单击待办事项列表的复选框时划掉文本

javascript - Durandal View 偶尔无法正确加载,并且在缩小时总是无法正确加载

javascript - 如何使用 Jquery 将 JSON 数据绑定(bind)到下拉列表中?

javascript - 组件未在 React js 中呈现

html - 部分响应问题

html - 如何将一个 SVG 变形为另一个?

javascript - 文章比父 div 宽

javascript - Grunt-injector 忽略来自 bower 依赖的 css 文件

javascript - 使用 grunt 在 Angular 指令中调用 js 文件