fis3前端工程构建工具使用小结

使用百度前端工程构建工具FIS3经验整理
工具集介绍地址:http://fis.baidu.com/fis3/index.html

1.安装fis3环境
  1.1 安装nodejs环境
  1.2 安装fis3使用命令 npm install -g fis3
  1.3 检测fis3是否安装成功 fis3 -v

2.在项目根目录下新建配置文件fis-conf.js

3.在需要记录文件映射的地方新建map.json(可选)
  map.json文件内容为 __RESOURCE_MAP__

4.在fis-config.js所在目录执行 fis3 release -d 目录
  生成的版本文件就在目录下了


/*=======================*fis-conf.js文件解析*=======================*/

//*代表目录下一级内容
//**代表目录下任意深度内容

//将所有的js文件压缩
fis.match('*.js', {
// fis-optimizer-uglify-js 插件进行压缩,已内置
    optimizer: fis.plugin('uglify-js')
});

//将所有的css文件压缩
fis.match('*.css', {
    useSprite: true,
// fis-optimizer-clean-css 插件进行压缩,已内置
    optimizer: fis.plugin('clean-css')
});

将所有png文件压缩
//fis.match('*.png', {
//  // fis-optimizer-png-compressor 插件进行压缩,已内置
//  optimizer: fis.plugin('png-compressor')
//});

//选中文件适用文件指纹
fis.match('*.{js,css,png,jpg}', {
    useHash: true
});

//选中文件不适用文件指纹
fis.match('jquery.min.js', {
    useHash: false
});


//将选中的文件加入到静态映射表中
fis.match('*.{png,jpg}',{
    useMap: false
});


//选中文件标记为模块化文件,会自动添加或完成define
fis.match('/*.js', {
    isMod: true
});

//选中文件标记为不适用模块化功能
fis.match('sea.js', {
    isMod: false
});

//seajs使用命令,模块化必须指令
fis.hook('cmd', {
  baseUrl: '',//标示模块打包的基础路径
});

//忽略选中文件,标记为不被编译内容,防止文件中出现body或html字符导致不可预料的错误
fis.match('*.php',{
    isHtmlLike : false,//让文件不会像处理html文件一样
    isJsLicke : false,//让文件不会像处理js文件一样
    isCssLicke : false//让文件不会像处理png文件一样
});




//外联样式占位符<!--RESOURCEMAP_PLACEHOLDER--> pkg配置表占位符 暂时不用这个
//内联样式占位符<!--SCRIPT_PLACEHOLDER--> 必须

fis.match('::packager', {
    postpackager: function(ret,b,c,d){

        var _src = ret.src;
        for (var i in _src) {

        }

    }
});

fis.match('::packager', {
    postpackager: fis.plugin('loader', {
        useInlineMap: true,//使用内联模块静态表
//    allInOne: {
//      includeAsyncs: true,
      ignore: ['/static/sea.js']
//    }
    },'prepend')
});

fis.match('*.php', {
    preprocessor: function (content, file, settings) {
      //content 文件内容
          return content;
    }
});



// fis.match('::packager', {
//   spriter: fis.plugin('csssprites')
// });


//全局或本地安装插件
//npm install [-g] fis3-hook-relative
//fis-conf.js
//启用插件
//fis.hook('relative');
//让所有文件,都使用相对路径。
//fis.match('**', { relative: true })


/*
 *
//加载seajs内容加载器,很重要,如果没有可能模块化代码不被转换
fis.match('::packager', {
    postpackager: fis.plugin('loader', {
//    allInOne: {
//      includeAsyncs: true,
      ignore: ['sea.js']
//    }
    })
});*/


//另外一种加载器写法
//fis.match('::packager', {
//  postpackager: fis.plugin('loader')
//});

//将选中的文件压缩到一个文件中,seajs模块化不支持此功能
// fis.match('*.js', {
  // packTo: 'js_pkg2.js'
// });
graduation 毕业设计代码,还没完成!但可以跑哦~ Fis3+Es6+Smarty+Tmpl 项目实战 阅读以下部分假定你已经了解: 构建工具 Fis3 基于Smarty的解决方案 Fis-Smarty 一些杂碎 Less, Tmpl, Es6 ... 微薄网站的设计与实现 功能 展示,留言,评论,评论量,访问量 后台CMS 瀑布流展示,懒加载数据 接入微博组件等 技术方案 前后端分离 构建: Fis3 结构: HTML,TMPL,Smarty 样式: Less 类库/框架: jQuery util: urlParam ... 数据: 假数据模拟,后期发布开发机联调 目录结构 前端目录 └─graduation ├─ README.md ├─ home └─ common ├─ plugin # Smarty 的插件放入这个目录 ├─ smarty.conf # 本地测试的 Smarty 引擎的配置文件 ├─ fis-conf.js # fis3 的配置文件 ├─ page # 放一些页面 ├─ server.conf # 本地测试的URL转发规则配置文件 ├─ static # 非组件静态资源 ├─ test # 假数据 └─ widget # 放一些 widget,里面代码最终会被组件化封装 ├─ header # 头部模块 │ ├─ header.js # js文件es6 │ ├─ header.less # css预处理 │ ├─ header.tmpl # JS模板 │ └─ header.tpl # Smarty 复用还是挺方便的 ├─ nav # 导航模块 ├─ article # 文章模块 └─ footer # 尾部模块 目录文件不是都必须需要,一般都会包含page、widget俩目录 前端预览或发布到本地模拟开发机预览该项目 发布到本地模拟开发机预览该项目 修改 fis-global-conf.js const RECEIVER = 'http://127.0.0.1/graduation-rd/receiver.php'; const to_path = '/graduation-rd'; const base_url = '/Applications/XAMPP/xamppfiles/htdocs/graduation-rd/'; 安装 npm install -g fis3 npm install -g fis3-smarty 后端环境下载 启动 fis3 release -r common xuecheng fis3 release -r home xuecheng fis3 release -r ... 发布成功后目录 └─ htdocs └─graduation-rd ├── application ├── home.php ├── license.txt ├── receiver.php ├── system ├── user_guide ├── template # .tpl 发布位置 ├── static # 静态资源发布位置 ├── plugin # plugin/*.php 发布位置 └── config # config/*.json 发布位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值