f2e-server: 专为前端打造的开发-联调-构建服务器
发布于 6天前 作者 shy2850 214 次浏览 来自 分享

基于Nodejs平台API,从提供最基本的文件服务器出发, 扩展前端开发、联调、测试、发布、文档、优化等工作流程的辅助工具。 Github: https://github.com/shy2850/node-server

安装Node.js环境

  • Node.js 是不同于浏览器环境的另一种javascript代码运行环境平台, 提供了一些系统级操作和WEB开发基本API, 在windows下载和安装Node.js环境直接通过官网 http://nodejs.org 获取。
  • node安装检测 在dos下执行 node -v 如果安装成功会显示版本号,否则需要将安装目录包含到系统环境变量中。
  • npm安装检测 完成类似上面步骤,继续测试安装一个官方模块,如 npm install uglify-js -g 如果提示安装成功,说明你的环境已经完整安装了,否则查看错误提示如果提示出现类似找不到C:\Users\Administrator.PC-SHY2850\AppData\Roaming\npm 文件夹的,只需要手动在对应的目录中新建一个空的npm文件夹就可以了。
  • 相信linux用户安装这个小菜一点,这里就不描述了。

安装f2e-server

  • f2e-server不建议全局安装,因此请您自行决定将它安装在哪里
  • 使用dos命令跳转到指定目录下,执行 npm install f2e-server , 会安装到相对的 node_modules/f2e-server 目录下
  • 如果需要使用 LESS、coffeeScript、jade、highlight等相关功能, 请先跳转 cd node_modules/f2e-server 目录中使用 npm install 命令
  • PS: 也可以使用git直接从github获取资源 git clone https://github.com/shy2850/node-server 完事儿进入下载目录,使用npm install 安装所有依赖。

添加配置文件

  • node_modules文件夹下新建一个 conf.js 文件,内容如下:
exports['localhost'] = { //host名称
    root: 'D:\\doc\\html\\',       /*linux系统下路径分隔符需要使用'/' 而非'\' */
    port: 80   
}; 
exports['test.xuan.news.cn'] = {
    root: 'D:\\doc\\html\\xuan\\', 
    port: 80   
}; 
exports['localhost3333'] = {
    root: 'D:\\doc\\other\\', 
    port: 3333   
}; 

配置自己的服务器索引的一个项目根目录,完整配置可参见:f2e-server/nodeLib/config/conf.js

启动服务器

  • 跳转到 node_modules/f2e-server 目录下,执行 npm start 服务器启动并打开浏览器
  • 如果启动失败, 很有可能是由于80端口被占用, 可以修改port配置
  • 修改浏览器url,将后面的端口号换掉,如果访问的文件列表跟本地路径对应,则配置生效

部分配置详解

  • root 配置项目根目录,注意结尾添加路径分隔符,很多功能依赖这个路径的张确配置
  • port 服务启动的端口号相同的时候可以根据不同的host名称,分别访问不同的目录很获取不同配置, 如果系统管理员权限足够,可以使用 node host程序修改windows系统的hosts文件,以满足不同域名访问本地端口服务。 【linux系统下面想要支持,请手工修改对应的host.js模块代码】
  • handle & runJs
    • handle不建议修改成false,否则除了基本的文件资源功能,将不支持任何扩展功能
    • runJs也是默认开启的,用以支持underscore的模板功能,几乎适用于所有的文本资源, 内置的文件夹列表等页面也是依赖它的。
  • middleware 默认开启对 LESS、coffeeScript、jade、markdown等功能的基本支持 可以查看 nodeLib/filter/middleware.js,并自己扩展支持更多中间件。
  • debug 默认开启,表示对所有资源文件不进行压缩, 设置 debug:false 时,实时压缩项目路径中请求的css/js等资源
  • fs_mod 默认开启,表示支持显示文件夹列表页面
  • output 输出代码结果时候的文件输出路径,因为开发时候是动态解析的代码,需要输出成结果代码才能作为通用的代码,给资源服务器使用。
  • buildFilter 该参数用于进行文件输出过程,文件输出只支持全量输出,为了提高输出性能,可以通过这个参数屏蔽部分资源文件只是文件复制,不通过HTTP请求改写结果。
buildFilder: function(filePath){
    return !/\bnode_modules\b/.test( filePath );
}
  • ‘nginx-http-concat’ 默认开启nginx的资源合并功能, 访问类似 /js??main.js,debug.js,script.js?v=1.3 路径时:动态合并对应文件文本。
  • filter 该配置结构如下:
filter: {
    get: function(req,resp){
        // 这个前置过滤器可以过滤所有服务端请求
    }
}
  • agent 如果你要远程代理别个服务器的请求到当前服务器,使用这个配置。
filter: {
    get: function(req,resp){
        return {
            host: "www.baidu.com",
            port: 80,  //80端口为默认的,如果是80端口,可以不写
            path: function(url){ //path可以修改映射到目标的路径,不配置时,跟本地访问路径一样
                return url.path.replace(/\.js/,".min.js");  
            } 
        }
    }
}

####本文档作为 README.md 的补充文档

回到顶部