背景等信息
fis也是个前端工程构建工具,现在已经到fis3,是百度团队出的一个工具。下面给出一个张图 仅供参考
然后没了。。。
fis3官方网址-传送
github项目地址-传送
关于node与npm的一些信息
安装node(里面会自带npm),步骤…,已经成功了
有时使用npm安装一些包的过程可能会失败,那用国内的npm镜像试试,如淘宝的npm镜像,这有张官网截图:
淘宝 NPM 镜像-官方网站
去看看官网 首页,然后就是。。。你懂了
看一些基本命令
1 2 3 4 5 6 7
| 备注:如express模块 npm list npm show express npm update npm update express npm update -g express npm uninstall express
|
node有一个模块叫n,是专门用来管理node.js的版本的,安装命令:
windows总是不能安装n模块,老是报错,有人说是:n 的 github 上说目前不支持 Windows!,这里有个帖子传送门
1 2
| n stable n后面也可以跟随版本号比如:n v0.10.26或n 0.10.26
|
fis3的基本工作
Node 版本要求 0.8.x,0.10.x, 0.12.x,4.x,不在此列表中的版本不予支持。最新版本 node 支持会第一时间跟进,支持后更新支持列表。
此处使用windows
1 2
| npm install -g fis3 fis3 -v
|
先上一段代码
此处代码好坏我自己都不敢看
目录结构
html部分代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <link rel="stylesheet" type="text/css" href="./less/common.less"> <link rel="stylesheet" type="text/css" href="./less/task1.less"> <link rel="stylesheet" type="text/css" href="./less/task2.less"> </head> <body>
<div class="common"> <h2>任务1:img图片</h2> <p><img src="img/xjh.jpg"></p> </div>
<div class="task1"> <h2>任务2:这是一个很久的神话</h2> <p>最终他们都消失了...............</p> </div>
<div class="task2"> <h2>任务3:这是一个人口很多的地方</h2> <p>好像已经无法控制了........</p> </div>
<div class="common"> <h2>任务4:雪碧图</h2> <ul class="icon-list"> <li class="list-1">item1</li> <li class="list-2">item2</li> </ul> </div> <div class="common"> <h2>任务5:嵌入base64</h2> <img src="img/logo.png?__inline"> </div>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script> <script src="js/a.js"></script> <script src="js/b.js"></script>
|
其他代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| //common.less *{margin:0;padding:0;} ul,li{list-style:none;} body{padding:30px;} p{line-height:40px;} h2{padding:20px 0;} .icon-list{ li{position:relative; &:before{display:block;content:'';width:16px;height:16px;position:absolute;left:-16px;top:3px;} } li.list-1:before { background-image: url('../img/list-1.png?__sprite'); } li.list-2:before { background-image: url('../img/list-2.png?__sprite'); } }
//task1.less .task1{ h2{text-decoration:underline;} }
//task2.less .task2{ h2{color:red;} }
//a.js function aaa(){ console.log($); console.log('hello World!!!'); var img = __uri('../img/icon_recon.jpg'); console.log(img); } aaa();
//b.js function bbb(){ console.log('bb'); } bbb();
|
fis-conf.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| /** * default debug mode * fis3 release debug * fis3-postpackager-loader * fis-spriter-csssprites * fis-optimizer-uglify-js 插件进行压缩,已内置 * fis-optimizer-clean-css 插件进行压缩,已内置 * fis-optimizer-png-compressor 插件进行压缩,已内置 */ fis.match('::package', { //在package阶段所有文件分配某些属性 postpackager: fis.plugin('loader'), //文件合并 spriter: fis.plugin('csssprites') //启用 fis-spriter-csssprites 插件 }) .match('*.{js,css,png,jpg}', {//加md5 useHash: true }) .match('*.less', { //合并图片 useSprite: true }) .match('*.less', { //less转换为css // fis-parser-less 插件进行解析 parser: fis.plugin('less'), // .less 文件后缀构建后被改成 .css 文件 rExt: '.css' }) .match('*.less', { //将转换的less压缩 // 压缩css optimizer: fis.plugin('clean-css') }) .match('*.less', { //将转换的less合并 packTo: './css/task.css' }) .match('*.js', { //压缩js optimizer: fis.plugin('uglify-js') }) .match('*.js', { //合并js packTo: './js/task.js' }) .match('*.png', {//压缩png图片 optimizer: fis.plugin('png-compressor') }) .match('*.{png,gif,jpg}', {//设置图片路径 release: '/images$0', url : '/images$0' });
fis.media('debug').match('*.{js,less,png}', { useHash: false, useSprite: false, optimizer: null, packTo:null })
|
fis3的一些命令
1 2 3 4 5 6
| fis3 release fis3 release -d ../output fis3 server open fis3 server start fis3 release -wL fis3 server -h
|
在文件目录下,使用命令:
1 2
| fis3 server start fis3 release
|
然后你会看到构建后的文件情况,代码上面有注释,这我就不说了。
github代码地址!!!
资源定位
定位JS:所有的 js 发布到/static/js/xxx目录下
1 2 3
| fis.match('**.js', { release : '/static/js$0' });
|
定位CSS:所有的 css 发布到/static/css/xxx目录下
1 2 3
| fis.match('**.css', { release : '/static/css$0' });
|
定位图片:所有image目录下的.png,.gif文件发布到/static/pic/xxx目录下
1 2 3
| fis.match('/img/(*.{png,gif})', { release: '/static/pic/$1$2' });
|
为止
还有一部分, 暂时到这了。
参考链接
- fis2官网地址
- 淘宝 NPM 镜像