说到打包工具,大家都会想到webpack,我之前也接触过webpack,说实话个人觉得webpack上手容易,但是对于新手来说里面有太多坑,配置文件也不简单。于是乎,我转入了fis3阵营,发现fis3对于新手来说再合适不过了,fis3只用记住几条命令就可以解决日常需求。下面开始讲解:
1.fis3 release [-d 发布路径]
发布代码到fis3本地浏览器,括号中代表发布到哪个文件目录下,不带参数,默认发布到本地浏览器(可以使用第5条命令查看本地服务器路径,会自动打开文件夹)
2.fis3 server start [-p 端口号]
开启本地服务器,括号中代表设置端口号,如果发现端口号被占用。
3.fis3 server clean
清除fis3本地服务器代码
4.fis3 release -wL
热调试,可以实时预览代码改变后的效果,简单实用
5.fis3 server open
自动打开本地服务器目录
更多命令,详情参考(fis3官方文档) http://fis.baidu.com/fis3/docs/beginning/intro.html
下面是我常用的配置,他可以编译es6,7语法为es5,编译预处理语言sass,less为css文件,自动添加css后缀(再也不用手动添加后缀了)压缩合并js,css代码,压缩png,自动将小图片icon转换为base64字符,自动为文件加上hash或者MD5,自动生成csssprite(精灵图或者叫做雪碧图),自动将相对路径转化为绝对路径,实时预览,一键部署发布等功能。(仅仅只有40行,实现了这么多功能,是不是觉得比webpack简单多了?还不赶紧用起来)
// 加 md5
fis.match('*.{png,jpg,gif,js,less,css}', {
useHash: true
});
// 启用 fis-spriter-csssprites 插件
fis.match('::package', {
spriter: fis.plugin('csssprites')
});
// 对 CSS 进行图片合并
fis.match('*.css', {
// 给匹配到的文件分配属性 `useSprite`
useSprite: true
});
//支持 es6、es7 或者 jsx 编译成 es5
fis.set('project.fileType.text', 'js');
fis.match('*.js', {
parser: fis.plugin('babel-6.x'),
rExt: '.js',
optimizer: fis.plugin('uglify-js')
});
fis.match('*.less', {
// fis-parser-less 插件进行解析
parser: fis.plugin('less'),
// .less 文件后缀构建后被改成 .css 文件
preprocessor : fis.plugin("autoprefixer",{
"browsers": ["last 10 versions"]
}),
rExt: '.css',
optimizer: fis.plugin('clean-css')
});
fis.match('*.png', {
// fis-optimizer-png-compressor 插件进行压缩,已内置
optimizer: fis.plugin('png-compressor')
});