![](https://i-blog.csdnimg.cn/blog_migrate/7824360db62343681a2b22df2c1a3793.gif)
⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术、答疑解惑、面试辅导、职业发展的社区。
现在加入,即可参与打卡挑战,和一群人一起努力。挑战成功即可获取一次免费的模拟面试机会
,进而评估知识点的掌握程度,获得更全面的学习指导意见,不走弯路,不吃亏!
调式+发布
前提回顾
前面一节《【原创】fis3构建工具使用教程(01)》中我们初步介绍了怎么使用fis3进行构建,例如资源定位、雪碧图、压缩资源文件等功能的使用,希望你还记得如何使用它们。如果你忘记了,可以回到该篇文章中巩固一下,毕竟希望你能连续的看完这几篇fis3教程。T_T
OK,在本篇中我们将介绍如何调式和发布前面我们已经构建好的项目。
调式构建结果——web server
由于我们将项目进行构建之后,发现构建之后项目中的资源文件的路径从“相对路径”——>变成了“绝对路径”。这样一来,不方便我们的调式。所以,fis3为了解决这个问题,就在fis3中内置了web server 以方便调式查看我们的构建结果。
那问题是我们该如何使用呢?往下看~
-
fis3 server open
打开web server根目录
(1)在使用该命令的时候,有一个前提————即,我们在构建项目时,不指定输出目录,即fis3 release -d ./output 变成了 fis3 release命令;
(2)使用fis3 release 构建时,fis3会将构建结果发送到内置的web server根目录下。
(3)构建完成之后,使用fis3 server open命令来打开在web server根目录下的构建结果。
如图:
-
fis3 server start
启用web server(1)接下来,我们要启动本地的web server服务,使用
fis3 server start
命令,服务启动之后,会自动在默认浏览器打开URL:http://127.0.0.1:8080,注意:当8080端口被占用时,你可以通过fis3 server -h帮助命令找到更多的关于启动web server服务的参数,包括对端口号的设置等。
如图:
(2)需要知道的是:web server在不重启电脑或是输入关闭web server命令的情况下,是不会自己关闭的。fis3内置的web server也是如此。所以,我们无需每次启动一次web server。 -
fis3 release -w
文件监听
这是文件监听命令。例如,当我们修改了某项目文件,之后如果我们按照常规的构建发布做法——就是还要再次执行一次fis3 relase
,那么,这样就会导致有些没有被修改的文件再次被编译——即重复。这样,无形增加了编译时间,这对文件很庞大的项目而言是显而易见的。
所以,我们使用fis3 release -w
来减少这样不必要的重复操作。对于fis3 release -w
它只会编译改动的文件。改动时,你只要保存(ctrl+s)之后,监听就会执行。
如图:
 -
fis3 release -wL
浏览器自动刷新
这个命令,能让我们在构建发布之后,让浏览器自动刷新URL-127.0.0.1:8080,而无需手动去刷新,这也提升了我们的构建体验,是个不错的想法。
发布
这部分作者没有实际进行测试过。如果你觉得还用不到,可以先略过。这里只进行一个简单的介绍。
传统地,在项目开发、测试完成之后,我们会将项目发布到服务器上。有时会先发布到一个test(测试)服务器上,再发布到正式服务器上。我们会用到如ftp这样的上传工具。
在fis3中,默认提供的是使用Http的方式上传代码。
(1)在上传之前,我们需要和后端程序员,如PHP,一起协调。在测试服务器上部署上传接收脚本。将该脚本放到测试服务器上的某个web根目录下,并配置一个能访问到的url即可!
PHP脚本如下:
<?php
@error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
function mkdirs($path, $mod = 0777) {
if (is_dir($path)) {
return chmod($path, $mod);
} else {
$old = umask(0);
if(mkdir($path, $mod, true) && is_dir($path)){
umask($old);
return true;
} else {
umask($old);
}
}
return false;
}
if($_POST['to']){
$to = urldecode($_POST['to']);
if(is_dir($to) || $_FILES["file"]["error"] > 0){
header("Status: 500 Internal Server Error");
} else {
if(file_exists($to)){
unlink($to);
} else {
$dir = dirname($to);
if(!file_exists($dir)){
mkdirs($dir);
}
}
echo move_uploaded_file($_FILES["file"]["tmp_name"], $to) ? 0 : 1;
}
} else {
echo 'I'm ready for that, you know.';
}
假定我们设定的URL是:
http://cq.01.p.p.baidu.com:8888/receiver.php
那么在fis-conf.js文件中我们就该这样配置:
fis.media('test').match('*',{
deploy:fis.plugin('http-push',{
receiver:'http://cq.01.p.p.baidu.com:8888/receiver.php',
to:'home/work/htdocs' //该路径指的是测试服务器上的,并非本地
})
})
然后,fis3 release test 来上传测试服务器。
注意:deploy插件
deploy插件是一个专门用于发布数据的插件,如发布到哪里(文件夹、远端服务器),用什么方式发布(http、ftp、git…)。它能作用某个文件、某类文件或是全部文件。
替代 fis3 内置web server
默认情况下,我们fis3 release 之后,会将构建结果发送到fis3 内置的web server的根目录下。
而,替代内置的web server从根本上来说,就是改变在fis3 release时改变发送构建结果的目录。
例如,我们将构建结果发送到/Users/imaginexie/htdocs 目录下:
**做法:**配置文件fis-conf.js
fis.match('*',{
deploy:fis.plugin('local-deliver',{
to:'/Users/imaginexie/htdocs'
})
})
这样的话,我们就可以在/Users/imaginexie/htdocs目录下找到我们的构建结果啦~
如图:
OK,关于fis3的调式与发布就到这里。
需要注意的一点,就是将项目构建部署到服务器上,需要你耐心的调式。
下一篇中,我们将深入介绍下fis3的语法,方便你更深刻并愉快的使用fis3。
南国之秋