【构建】fis3 - 使用教程(02)

调式+发布

前提回顾

前面一节《【原创】fis3构建工具使用教程(01)》中我们初步介绍了怎么使用fis3进行构建,例如资源定位、雪碧图、压缩资源文件等功能的使用,希望你还记得如何使用它们。如果你忘记了,可以回到该篇文章中巩固一下,毕竟希望你能连续的看完这几篇fis3教程。T_T

OK,在本篇中我们将介绍如何调式和发布前面我们已经构建好的项目。

【构建】fis3 - 使用教程(02)_第1张图片

调式构建结果——web server

由于我们将项目进行构建之后,发现构建之后项目中的资源文件的路径从“相对路径”——>变成了“绝对路径”。这样一来,不方便我们的调式。所以,fis3为了解决这个问题,就在fis3中内置了web server 以方便调式查看我们的构建结果。

那问题是我们该如何使用呢?往下看~

  1. 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 - 使用教程(02)_第2张图片
    【构建】fis3 - 使用教程(02)_第3张图片

  2. fis3 server start 启用web server

    (1)接下来,我们要启动本地的web server服务,使用 fis3 server start 命令,服务启动之后,会自动在默认浏览器打开URL:http://127.0.0.1:8080,注意:当8080端口被占用时,你可以通过fis3 server -h帮助命令找到更多的关于启动web server服务的参数,包括对端口号的设置等。
    如图:
    【构建】fis3 - 使用教程(02)_第4张图片
    (2)需要知道的是:web server在不重启电脑或是输入关闭web server命令的情况下,是不会自己关闭的。fis3内置的web server也是如此。所以,我们无需每次启动一次web server。

  3. fis3 release -w 文件监听
    这是文件监听命令。例如,当我们修改了某项目文件,之后如果我们按照常规的构建发布做法——就是还要再次执行一次fis3 relase ,那么,这样就会导致有些没有被修改的文件再次被编译——即重复。这样,无形增加了编译时间,这对文件很庞大的项目而言是显而易见的。
    所以,我们使用 fis3 release -w 来减少这样不必要的重复操作。对于 fis3 release -w 它只会编译改动的文件。改动时,你只要保存(ctrl+s)之后,监听就会执行。
    如图:
    【构建】fis3 - 使用教程(02)_第5张图片

  4. fis3 release -wL 浏览器自动刷新
    这个命令,能让我们在构建发布之后,让浏览器自动刷新URL-127.0.0.1:8080,而无需手动去刷新,这也提升了我们的构建体验,是个不错的想法。

发布

这部分作者没有实际进行测试过。如果你觉得还用不到,可以先略过。这里只进行一个简单的介绍。

传统地,在项目开发、测试完成之后,我们会将项目发布到服务器上。有时会先发布到一个test(测试)服务器上,再发布到正式服务器上。我们会用到如ftp这样的上传工具。

在fis3中,默认提供的是使用Http的方式上传代码。
(1)在上传之前,我们需要和后端程序员,如PHP,一起协调。在测试服务器上部署上传接收脚本。将该脚本放到测试服务器上的某个web根目录下,并配置一个能访问到的url即可!
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目录下找到我们的构建结果啦~
如图:
【构建】fis3 - 使用教程(02)_第6张图片

OK,关于fis3的调式与发布就到这里。

需要注意的一点,就是将项目构建部署到服务器上,需要你耐心的调式。

下一篇中,我们将深入介绍下fis3的语法,方便你更深刻并愉快的使用fis3。
【构建】fis3 - 使用教程(02)_第7张图片
南国之秋

你可能感兴趣的:(web性能)