百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

使用来自百度的FIS 打包项目初探笔记

myzbx 2025-02-03 14:12 19 浏览

最近随着grunt的火热,前端项目打包也成为了一个前端工程师必备的技能。这两天发现除了国外的grunt国内百度的FIS也是一个相当不错的工具,最最最起码他的说明文档教程API等等都是中文滴,对于英文不好的朋友来说,学习起来那是相当的方便。好了言归正传,首先还是先比较一下fis和grunt的区别吧,以便有个初步了解。下面是截取了百度研发部自己的一份说明对比说明:

Grunt 是一个基于 task 的构建工具,依赖众多的插件进行配置组织,可以解决基本的前端自动化问题。FIS 是基于工具、开发框架、本地开发环境为一体的前端解决方案,不但拥有各类工具插件,同时还针对 PC、Mobile、I18n 等业务、场景总结了很多最佳实践。

是否已经有了一个初步了解呢,如果想深入了解就进入他们的官网http://fis.baidu.com/学一下,初探一天后在此做一个笔记以便之后自己查阅,也方便大家进行一个快速使用的了解。

首先建立一个叫做dodotest的项目,现在明确一下打包发布的需求是:

  1. 压缩所有的js css文件

  2. 给js,css ,image这些资源加上md5戳的版本控制,并修改对应的html的代码

  3. 合并部分js,css文件,合并部分icon图片为sprite形式以减少http请求

ok!开干!

1 安装

  1. 安装fis,与grunt一样基于npm的方式:npm install -g fis

  2. 安装插件postpackager-simple,npm install -g fis-postpackager-simple,这个插件是用来合并文件合并sprite图片使用的

2 启动fis

执行命令fis server start -p 8080则开启了fis内置服务,对应的关闭命令是fis server stop

3 配置

添加fis-conf.js文件到项目根目录并填写配置文件(说明在注释)

Bash
// 设置图片合并的最小间隔fis.config.set('settings.spriter.csssprites', {margin: 10});fis.config.merge({roadmap: {//指定一个domain地址,这里我使用了本机的nginx服务器地址(正常情况下发布肯定是不填或者填写线上静态资源域名),这个domain可以不配,不配的话fis默认是把你项目的所有相对路径搞成绝对路径,比如./js/jquery.js变成/js/jquery.js;配了的话就会变成http://127.0.0.1:8080/js/jquery.js的样子domain: "http://127.0.0.1:8888/"},deploy: {//发布时候使用fis release --dest remote来使用这个配置remote: {//这里是发布到的路径地址,我使用的是本机nginx服务器的根路径作为地址的,当然这里你也可以填个"./publish/"之类的直接就把打包好的项目生成到项目的跟路径下。//如果不配置这个remote,那么发布后默认会到fis内置服务的跟路径www/下面(可以通过fis server open打开这个路径),访问时候直接127.0.0.1:8080就可以了to: 'E:/html/'}}});// 开启simple插件fis.config.set('modules.postpackager', 'simple');//设置文件合并fis.config.set('pack', {'/pkg/js/lib.js': ['js/lib/jquery.js','js/lib/jquery.a.js','js/lib/jquery.b.js'],// 取消下面的注释设置CSS打包规则,CSS打包的同时会进行图片合并//图片合并这里要说明一下,不是所有图片都合并的只有指定了"?__sprite"才行,如css:background: url(/img/1px_bg.png?__sprite)的形式,如果有特殊的个性化合并需求就查看api吧'/pkg/css/common.css': '**.css'});// 开启simple对零散资源的自动合并//如果开启,每一个页面用到的js都会被合并成为一个js,不同页面调用了不同的js也会被分别合并:比如a页面引入了a.js,b.js,b页面引入了b.js,c.js,那么ab将被合并为一个js被a页面引用,bc将合并为另一个js被b页面引用,并都被存放在pkg/下fis.config.set('settings.postpackager.simple.autoCombine', true);

4 发布

fis release --dest remote -o --md5 --pack

说明: --dest remote 是调用remote配置发布,-o是要压缩资源,--md5是要给文件名加戳并同时修改html的引用文件名,--pack是使用文件合并了

结语

怎么样感觉是不是很方便,用grunt的时候光搞md5加戳就搞了好久又是grunt-rev又是grunt-usemin的,还得写一大堆配置,这个fis真的是”体贴“多了。以上只是fis的冰山一角,想要使用他更强大的配置功能就挤时间学一下吧

点击阅读原文获得更多精彩内容

相关推荐

如何用Java还原童年回忆?在线教你完成贪吃蛇小游戏

今天我就从零开始来完成这个小游戏,完成的方式也是一步一步的添加功能这样的方式来实现。额,不好意思,放错了,重来第一步完成的功能:写一个界面大家见到的贪吃蛇小游戏,界面肯定是少不了的。因此,第一步就是写...

金士顿Canvas Go!Plus microSD卡评测 4K影像轻松驾驭

【ZOL中关村在线原创评测】如今,视频已经成为社交媒体的主流内容传播形式,全民自媒体时代更是让昔日被视为高端、专业的视频拍摄,走进大众的生活。同时,无人机、运动相机等新世代影像设备也已经支持了4K视频...

国外顶尖教程大师教你设计一个炫酷游戏海报...

今天的教程很实用,我想对于做网页设计的童鞋肯定非常想学会用Photoshop的合成技巧来制作高端的游戏网站我们将用很多素材和照片来合成一个场景和一些页头和导航的制作。过程需要很长时间,素材也很多,我自...

Excel 制作贪吃蛇游戏,让你轻松摸鱼!

步骤1:准备工作表1.创建游戏区域:o在单元格区域(如B2:AK30)设置一个矩形区域,调整行高和列宽为正方形(如行高20像素,列宽3字符)。o设置背景色为深色(如黑色),作为游戏画布。2.初...

成长的画布,绘满童趣色彩

在万家丽热闹的脉动中,特步童装是一方柔软的画布,等待孩子们用欢笑与奔跑泼洒斑斓色彩。这里没有生硬的商业气息,每一件衣物都像会呼吸的精灵,悄悄诉说着关于童年的奇妙物语。漫步其中,仿佛踏入一座流动的童话森...

【教育高质量发展】施甸县示范小学:地面为画布 游戏“绘”出精彩童年

近日,施甸县示范小学积极践行“健康第一”教育理念,在寒假前夕,学校美术组教师联合部分师生完成了校园地面游戏彩绘工作。教师们以地面为画布,绘制跳格子、转盘、迷宫等游戏图案,为下学期师生15分钟课间做好了...

《国王的画布》Steam试玩发布 手绘风地图制作工具

HannesBreuer工作室制作并发行,一款手绘风地图制作工具游戏《国王的画布》Steam试玩发布,本作暂不支持中文。《国王的画布》游戏中玩家可以自定义交互式路径生成随机元素,易于调整改动。无需...

怪物收集RPG冒险游戏《妖之乡》7月16日正式发售

今日(6月18日),怪物收集RPG冒险游戏《妖之乡》更新发售日消息,该作将于7月16日发售,游戏试玩Demo现已正式上线,感兴趣的玩家可以进入商店页面。游戏介绍:《妖之乡》是一款东方奇幻的怪物收集R...

208元起,育碧第一人称动作冒险游戏《阿凡达:潘多拉边境》发售

IT之家6月18日消息,育碧旗下第一人称动作冒险游戏《阿凡达:潘多拉边境(Avatar:FrontiersofPandora)》已于今天登陆Steam平台(点此访问),目前本作正在平台...

甜蜜下潜藏的疯狂?和病娇美少女《米塔》在一起的冒险解谜游戏今日发售

由Aihasto开发制作,IndieArk发行的冒险解谜游戏《米塔》在今日上架Steam平台进行发售。售价人民币52元,首发-10%的折扣持续14天,折扣后仅需46.8元。该作同步支持日语和俄语配音...

十大必玩的合作单机游戏排行

合作模式一直是单机游戏中的重要元素,玩家可以和朋友一起组队、配合,共同完成游戏任务。在众多的合作单机游戏中,哪些才是最值得一试的呢?本文将为大家介绍十大必玩的合作单机游戏排行。这些游戏不仅拥有精彩刺激...

原版20周年献礼:《战争机器:重装上阵》游戏8月26日发行

IT之家5月6日消息,微软官方XboxWire博客昨日(5月5日)发布博文,官宣《战争机器:重装上阵》(GearsofWar:Reloaded)游戏,将于2025年8...

十款免费的战斗单机游戏推荐之网络版

这篇文章主要介绍了十款免费的战斗单机游戏,并对它们进行了排行。这些游戏涵盖了不同类型和风格,包括角色扮演、射击、策略等。每款游戏都有详细的介绍和评价,读者可以根据自己的喜好选择适合自己的游戏。对于喜欢...

十大必玩的合作单机游戏:打造完美团队

合作模式一直是单机游戏中的重要元素,玩家可以通过合作来共同完成游戏任务,增加游戏的趣味性和挑战性。在本文中,我们将为您介绍十大必玩的合作单机游戏。这些游戏不仅拥有精彩刺激的剧情和画面,还提供了多种合作...

十款好玩的战斗单机游戏:哪个更好玩

战斗单机游戏一直是玩家们的最爱,而好玩的战斗单机游戏更是备受期待。在众多的战斗单机游戏中,哪些更好玩呢?本文将为您介绍十款备受好评的战斗单机游戏,并进行详细比较分析。无论您是喜欢动作还是策略,都能在这...