百度构建工具fis3常用命令及配置写法

目录

  • release发布命令
  • 配置文件写法
  • 资源定位写法

release发布命令

fis3 release -d <path>

<path>任意目录
fis3 release -h 获取更多参数

fis3 server start

启动内置服务器
fis3 server -h 获取更多参数

fis3 server open

打开内置服务器目录,不指定发布地址则默认发布到内置服务器中

自己的服务器替代内置Server

使用配置后 执行 fis3 release 即可
fis.match('*', { deploy: fis.plugin('local-deliver', { to: '/Users/my-name/work/htdocs' })})

fis3 release -w

文件监听
停止程序用快捷键 CTRL+c

fis3 release -wL

浏览器自动刷新
程序停止用快捷键 CTRL+c

配置文件写法 fis-conf.js

fis.match(selector, props);

selector:FIS3 把匹配文件路径的路径作为selector,匹配到的文件会分配给它设置的 props
props:编译规则属性,包括文件属性和插件属性,更多属性

fis.media()配置多种状态

比如:

  • fis3 release rd push 到 RD 的远端机器上
  • fis3 release qa push 到 QA 的远端机器上

fis.media('prod').match('*.js', { optimizer: fis.plugin('uglify-js')});
fis3 release prod 使用定义的prod方案

资源定位

html资源定位 不需要改变写法

FIS3 支持对html中的script、link、style、video、audio、embed等标签的src或href属性进行分析

js资源定位 __uri(path) 改变写法

源码:var js = __uri('demo.js');
编译后var js = '/static/js/demo_33c5143.js';

css资源定位 不改变写法,但要使用url() src=''

fis编译工具会识别css文件或 html的style标签内容url(path) 以及 src=path 字段
源码:@import url('demo.css');
编译后@import url('/demo_7defa41.css');
源码:.style { background: url('images/body-bg.png'); }
编译后.style { background: url('/images/body-bg_1b8c3e0.png'); }
源码:.style { _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/body-bg.png'); }
编译后.style { _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/body-bg_1b8c3e0.png'); }

参考配置写法

fis.match('*.{js,css,png,gif}', {
    useHash: true // 开启 md5 戳
});

// 所有的 js
fis.match('**.js', {
    //发布到/static/js/xxx目录下
    release : '/static/js$0'
});

// 所有的 css
fis.match('**.css', {
    //发布到/static/css/xxx目录下
    release : '/static/css$0'
});

// 所有image目录下的.png,.gif文件
fis.match('/images/(*.{png,gif})', {
    //发布到/static/pic/xxx目录下
    release: '/static/pic/$1'
});

依赖声明

默认只有js和css文件会输出到manifest.json表中
添加html依赖只需配置如下

// fis-conf.js
fis.match('*.html', {
    useMap: true
});

html依赖声明

<!--
    @require demo.js
    @require "demo.css"
-->

css依赖声明

/**
 * demo.css
 * @require reset.css
 */

js依赖声明

//demo.js
/**
 * @require demo.css
 * @require list.js
 */```


#内容嵌入
适合合并文件,减少请求数
##在html中嵌入资源,给资源加 **?__inline**
html中嵌入图片base64

    <img title="百度logo" src="images/logo.gif?__inline"/>
    <img title="百度logo" src="data:image/gif;base64,R0lGODlhDgGBALMAAGBn6eYxLvvy9PnKyfO...Jzna6853wjKc850nPeoY

html中嵌入样式文件

    <link rel="stylesheet" type="text/css" href="demo.css?__inline">
    <style>img { border: 5px solid #ccc; }</style>

html中嵌入脚本资源

    <script type="text/javascript" src="demo.js?__inline"></script>
    <script type="text/javascript">console.log('inline file');</script>

html中嵌入页面文件

    <link rel="import" href="demo.html?__inline">
    <!-- this is the content of demo.html -->
    <h1>demo.html content</h1>

##在js中嵌入资源  **__inline()**
在js中嵌入js文件

    __inline('demo.js');
    console.log('demo.js content');

在js中嵌入图片base64

    var img = __inline('images/logo.gif');
    var img = 'data:image/gif;base64,R0lGODlhDgGBALMAAGBn6eYxLvvy9PnKyfO...Jzna6853wjKc850nPeoYgAgA7';

在js中嵌入其他文本文件

    var css = __inline('a.css');
    var css = "body \n{ color: red;\n}";

##在css中嵌入资源 ?__inline

在css文件中嵌入其他css文件

    @import url('demo.css?__inline');
    img { border: 5px solid #ccc; };

在css中嵌入图片的base64

.style {
background: url(images/logo.gif?__inline);
}
.style {
background: url(data:image/gif;base64,R0lGODlhDgGBALMAAGBn6eYxLvvy9PnKyfO...Jzna6853wjKc850nPeoYgAgA7);
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • 前端集成解决方案要求: 模块化开发。最好能像写nodejs一样写js,很舒服。css最好也能来个模块化管理! 性能...
    Www刘阅读 2,921评论 1 20
  • 大部分的后端会很很鄙视前端。我也不知道为什么,可能大部分人都会觉得脚本语言根本不算语言。 大多人 会叫我们切图仔,...
    小黑的眼阅读 3,252评论 0 15
  • 前些日子从@张鑫旭微博处得一份推荐(Front-end-tutorial),号称最全的资源教程-前端涉及的所有知识...
    谷子多阅读 4,070评论 0 44
  • 第三章 昆仑山(1) 如果我对身体的控制真的渐渐恢复了的话,那就只能说明一个问题,我并没有死。 在意识到我还活...
    书千字阅读 296评论 0 2
  • 今天是10月31日,天气晴朗。我们学校组织了秋游活动,这是我小学的第一次秋游。我非常兴奋。 我们一年级八个班都去了...
    秋天的丘阅读 586评论 0 50