基于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 的补充文档