位置: 编程技术 - 正文

Grunt针对静态文件的压缩,版本控制打包的实例讲解(静态文件格式有哪些)

编辑:rootadmin

推荐整理分享Grunt针对静态文件的压缩,版本控制打包的实例讲解(静态文件格式有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:静态文件格式有哪些,静态语言用什么方式执行,静态对象存储在哪里,gfortran静态编译,静态文件包含,gfortran静态编译,gfortran静态编译,静态文件包含,内容如对您有帮助,希望把文章链接给更多的朋友!

在讲之前先谈谈大致步骤:安装nodejs -> 全局安装grunt -> 项目创建package.json --> 项目安装grunt以及grunt插件 -> 配置Gruntfile.js -> 运行任务

1.安装Node

我们开始之前需要安装Nodejs,如果没有安装的 传送门

安装好了之后,查看是否安装成功,正常是这样的提示

这里建议npm换成淘宝的cnpm,速度杠杠的。

安装命令:

npm install cnpm -g -registry= install grunt -g

3.项目创建package.json

在项目根目录下创建package.json文件,文件内容如下

4.项目安装grunt以及grunt插件

我们所需要的插件

插件名称 说明 Github地址 grunt-contrib-clean 清空文件和文件夹 grunt-contrib-copy 复制文件和文件夹 grunt-contrib-concat 连接、合并文件(没用到) grunt-contrib-cssmin (CSS文件)压缩 grunt-contrib-uglify (JS文件)压缩 grunt-filerev 文件内容hash(MD5)(版本号控制) grunt-usemin 文件进行引用修改 load-grunt-tasks oad-grunt-tasks

我们打开我们的项目文件夹,在路径栏中输入cmd然后回车

回车后的界面

打开命令行窗口之后,我们输入安装命令:

cnpm install grunt grunt-contrib-clean grunt-contrib-copy grunt-contrib-concat grunt-contrib-cssmin grunt-contrib-uglify grunt-filerev grunt-usemin load-grunt-tasks --save-dev

5.配置Gruntfile.js (这是重点,重点,重点。重要的事情说三遍。)

先贴一下我的配置,后面慢慢说明

我们前面一直都在安装这个安装那个,但是安装的这些东西怎么用起来了?

首先我们通过学习 grunt入门 了解到插件如何使用,这是官网的例子。

pkg是通过读取package.json生成的json对象。

uglify是 grunt-contrib-uglify 指定的任务名,每个插件都有对应的任务名,可以在对应的github里面查看

grunt.loadNpmTasks('grunt-contrib-uglify'); 从字面上就可以看出来/,加载能够提供"uglify"任务的插件。

grunt.registerTask('default', ['uglify']); 注册别名任务,这个别名任务对应的是一个任务列表

当通过 grunt 别名时,实际是执行列表里的任务,并按顺序执行

这些基本的信息都可以通过官网查看。

Grunt针对静态文件的压缩,版本控制打包的实例讲解(静态文件格式有哪些)

我们来说说我们需求,我们需要对静态文件打包压缩,并且需要对静态文件加入版本号而且所有引用静态文件的html或css都得修改文件名,我们的需求明确后来来看看我们怎么做。

第一步:我们需要重新打包,那就需要复制文件,所以我们需要grunt-contrib-copy插件。

在copy之前我们先要确定源文件和目标文件,我这里源文件都放在test文件夹中,目标文件都放在dist文件夹中

我们创建文件路径

文件路径创建好了,我们来看copy

从代码的注释就可以看出一二了。这里说下cwd,src,dest 。

其实这里的源路径是 cwd + src。这才是真正的源路径。dest是目标路径前缀。

我这里的意思是src下面所有的文件,意思就是把 src文件夹 里面的文件复制到 dest文件夹 里。这里可以指定需要复制的具体文件夹或者文件类型

第二步:进行文件压缩,我这里只是针对js和css压缩,对img的压缩可以查看对应的插件,思路都一样。

css压缩需要用到 grunt-contrib-cssmin 插件,该插件对应的任务名为 cssmin

js 压缩需要用到 grunt-contrib-uglify 插件,该插件对应的任务名为 uglify

第三步:静态文件重命名,我们这里的版本控制是通过对静态文件重命名来现实的。

重命名需要用到 grunt-filerev 插件,该插件对应的任务名为 filerev

这里只有一个src参数,传的是个数组,我们这里是只想给css和js重命名,其他文件不需要。所以数组第一个参数 src/** 匹配src文件夹中所有文件,后面两个 ! xx,是排除的意思,

第四步:修改html中css和js的引用

修改文件引用需要用到 grunt-usemin 插件,该插件对应的任务名为 usemin

这里也只有一个src参数,给出的是html的地址,如果你还有css 可以这样写

第五步:我们从 复制,压缩,重命名,修改引用都说了一遍,这里还少一个东西,就是我们每次复制之前需要把目标文件夹里面的文件删除掉。

修改文件引用需要用到 grunt-contrib-clean 插件,该插件对应的任务名为 clean

这里也只有一个src参数,给出目标文件夹的地址。

所有任务到这里就结算了。

我们注册任务别

可以看到,我们这里只是注册了任务,并没有应用插件。我们添加插件是听过 load-grunt-tasks 插件完成的

这里指令相当于我们一个个写

Gruntfile.js 配置完了之后我们执行grunt命令就可以在目标文件夹中得到我们所需要的文件

这里补充说明几点:

Gruntfile.js 配置完了之后我们执行grunt命令就可以在目标文件夹中得到我们所需要的文件

这里补充说明几点:

这种写法是动态构建文件对象

这种写法是文件数组格式

以上这篇Grunt针对静态文件的压缩,版本控制打包的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

Nodejs+angularjs结合multiparty实现多图片上传的示例代码 这次我们说一下nodejs+angularjs多图片上传的问题此前也在网站看了很多篇文章,有关的内容说多不多,说少也不少,但我一一试过以后有成功的,也有没

实现一个完整的Node.js RESTful API的示例 前言这篇文章算是对BuildingAPIswithNode.js这本书的一个总结。用Node.js写接口对我来说是很有用的,比如在项目初始阶段,可以快速的模拟网络请求。正因

详解用Node.js实现Restful风格webservice Restful风格的WebService正在渐渐取代传统的SOAP,Java也有很多Restful的框架,很方便简洁,Jersey,restlet,甚至SpringMVC也可以,不得不说Rest让人从Web转型到WebSer

标签: 静态文件格式有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/379541.html 转载请保留说明!

上一篇:Node.js学习之地址解析模块URL的使用详解(node.js入门)

下一篇:Nodejs+angularjs结合multiparty实现多图片上传的示例代码

  • 其他应收款账务处理题目
  • 实缴注册资本交税吗
  • 上季度弥补以前年度亏损与本季度亏损
  • 报税界面
  • 公司出售固定资产
  • 销售大型设备的税率
  • 收到前欠销货款290000元,存入银行的会计分录怎么写
  • 企业购进货物暂估入库的会计分录如何处理?
  • 预付材料款的会计分录怎么写
  • 免征增值税和营业税政策
  • 税务局加强企业所得税管理
  • 税控盘维护费是普票能全额抵扣吗
  • 发票红冲退税是全额退吗
  • 专票怎么提交不上去
  • 顾问费属于劳务费吗
  • 中方人员取得的工资、薪金所得,征收个人所得税有特别规定吗?
  • 广告设计公司需要哪些设备
  • 广告代理服务计入什么费用
  • 免交的增值税计入什么科目
  • 汽车销售公司买车后续维修保养
  • 支票遗失要怎么补办
  • 企业可以用当月的进项票抵扣上月的销项吗?
  • 开模具公司要什么设备
  • 差额税和增值税怎么算
  • 异常抵扣凭证进项税转出入哪个所属期
  • mac菜单栏怎么调出来
  • 苹果手机升级微信版本
  • win7系统重启怎么还原系统
  • windows11怎么查看显卡
  • 绝地求生要什么电脑配置
  • 社保参保退费需要多久
  • php初学实例教程
  • 年终结算增值税怎么算
  • lsass.exe在哪个文件夹
  • 公司收到财政拨付办公经费
  • PHP:clearstatcache()的用法_Filesystem函数
  • framework启动
  • 最详细、最完整的相机标定讲解
  • Mybatis+Servlet+Mysql 整合的一个小项目:对初学者非常友好,有助于初学者很快的上手Java Web
  • nvme安装win10教程
  • 过来人告诉你:女人最珍贵的三种东西,舍得给你说明爱你
  • 登录界面html5
  • 代发工资的会计科目
  • 如何做进项税额明细表
  • python id 函数
  • sql执行顺序优先级
  • mysql5.7字符集
  • Discus X 3 门户改造熊掌号网页教程
  • 税控盘有什么用途和作用
  • 什么是债权人和债务人简单来说
  • 财务负责人和法人可以一个人吗
  • 计提工资附什么单据
  • 第四季度所得税跟汇算清缴是一样吗
  • mysql数据库的设计与实现
  • 企业哪些行为可以避税
  • 预收货款未发货怎么办
  • 公司报销发票需要查验真假吗
  • 小企业如何建立风险管理制度
  • 优盘和硬盘
  • centos vncviewer
  • linux环境什么意思
  • windowsxp示例图片
  • linux使用yum
  • win7主要有哪些内容
  • uup windows
  • 如何用mac制作ppt
  • linux查看mtime的命令
  • linux init.h
  • Linux CentOS系统下tomcat配置ssl教程
  • 怎么对js代码程序进行设计
  • py常用函数
  • cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
  • iframe语法
  • unity程序开发
  • 安卓动态图标怎么实现
  • jQuery EasyUI中DataGird动态生成列的方法
  • 如何搭建python项目架构
  • 社保批扣和灵活就业批扣有什么区别
  • 研发材料占研发费用比例超出50%
  • 城镇土地使用税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设