旨在脱离后端环境的前端开发套件 - IDT之Server篇
IDT,一个基于Nodejs的,旨在脱离后端环境的前端开发套件,目的就是能让前端开发完全脱离后端的环境,无论后端是什么模板引擎(主流),都能应付自如。
IDT主要包括两大部分:Server + Build,这一篇主要介绍Server篇。
为了辅助前端开发,一个本地的类似于Apache的服务器是少不了的,但是有个问题,如果项目中的html,是php的smarty模板怎么办?使用纯粹的静态服务器是不行的,因为对前端开发来说,这个html必须由php的smarty模板引擎来解析,前端人员不懂php怎么办,可以让后端人员来协助搭建环境;但是项目是java,而html是velocity模板引擎呢?让后端人员来搭建java环境吧。。。好繁琐呀。而且,我想根据前后端的接口来自己mock数据怎么办?。。这些都是问题,IDT应运而生。
适用于Django Template、PHP Smarty、Java Velocity、Java Freemarker的Integration Develop Tool [ 集成开发工具 ]
其实,IDT中的server使用的是grunt-conect组件,然后通过了middleware的概念,来处理各种类型的数据:
例如:html middleware做的事情,就是把与请求的url相对应的html文件,与自己的mock数据的文件,通过对应的模板引擎渲染,呈现给浏览器:
ajax middleware做的事情也是一样的。
目前,IDT支持了Python Django、PHP Smarty、Velocity、Freemarker的模板引擎的渲染,大大提高了前端开发的效率。
如何安装IDT:传送门
在安装完成以后,就可以开始开发了,在终端输入:idt -V 有正常输出,则安装正常~
在安装的源文件目录中,有一个:example-ws 目录,这里面就是示例目录,在这里可以切换各种模板引擎,进行测试:
.
├── django
│ ├── base.html
│ └── test.html
├── freemarker
│ ├── list.html
│ ├── test.tpl
│ └── view.html
├── idt-config.js
├── mock
│ └── html
│ ├── commonmock
│ │ └── common.js
│ ├── django
│ │ └── test.html.js
│ ├── freemarker
│ │ └── test.tpl.js
│ ├── smarty
│ │ └── test.tpl.js
│ └── velocity
│ └── test.html.js
├── smarty
│ ├── footer.tpl
│ └── test.tpl
└── velocity
├── dep.html
├── header.html
└── test.html
可以把这个目录拷出一份来,并且cd进入此目录,则可以直接执行:
idt ws start
那么这个例子就跑起来了,想结束server,只需要Ctrl+C。
在切换引擎的时候,唯一需要修改的地方就是:
// 模板引擎根目录【只需要修改最后一个参数即可】
templates: path.join( webContent, secondary, 'velocity' ), // 模板引擎切换: smarty / django / velocity / freemarker [ 默认velocity ]
/**
* velocity模板引擎采用:
* https://www.npmjs.com/package/velocity
*
* django模板引擎采用'A wrapper of Django's template engine'方式(桥接原理)
* 详见:https://www.npmjs.com/package/django
* 在启用之前请确保python环境已经ready,然后安装django:
* # pip install -v Django==1.7
* //or
* # easy_install "Django==1.7"
*
* smarty模板引擎采用:
* https://www.npmjs.com/package/nsmarty
*
* freemarker模板引擎采用:(桥接原理)
* 在启用之前,请确保java环境,并且需要安装:http://fmpp.sourceforge.net/
* https://www.npmjs.com/package/freemarker.js#readme
*/
tplEngine: 'velocity',
idt-config.js中的第50行,用来修改模板引擎的view的根目录,71行则是切换引擎的配置。
还有需要注意的地方就是上面代码中的注释部分:
django需要安装好python环境,并且,通过python安装好django,详细地则可以通过上面给出的链接去查看;
同理,freemarker也需要java环境,并且下载fmpp这个东东,而且要把fmpp中的bin目录加入环境变量;
django和freemarker的原理类似,node层次的代码,只是一层wrapper,它会通过命令行形式静默地去掉用python的接口或者java的接口,从而完成渲染。
IDT的功能不止这些,还有反向代理、远程调试、Less的实时编译(通过less middleware,less在请求过程中,直接被编译成css),批量导出静态文件、Build构建(调用了Edp进行build)等等功能,接下来会慢慢的介绍它的每一个功能。
感兴趣的可以看它的源代码就会了解~
旨在脱离后端环境的前端开发套件 - IDT之Server篇的更多相关文章
- 旨在脱离后端环境的前端开发套件 - IDT Server篇
IDT,一个基于Nodejs的,旨在脱离后端环境的前端开发套件,目的就是能让前端开发完全脱离后端的环境,无论后端是什么模板引擎(主流),都能应付自如. IDT主要包括两大部分:Server + Bui ...
- openresty 前端开发入门五之Mysql篇
openresty 前端开发入门五之Mysql篇 这章主要演示怎么通过lua连接mysql,并根据用户输入的name从mysql获取数据,并返回给用户 操作mysql主要用到了lua-resty-my ...
- Uix Kit 快速建站前端开发套件-工具箱
这个产品维护已经有一年了(由于业务需求不同,目前没有做中文版,产品本身是针对国外网站),自己本身是做UI出生,开发只是业余爱好,仅仅作为平时工作的需要.杂七杂八会一些前后端开发.并非职业码农! 我是一 ...
- 1. web前端开发分享-css,js入门篇
关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...
- web前端开发分享-css,js入门篇(转)
转自:http://www.cnblogs.com/jikey/p/3600308.html 关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人 ...
- 2. web前端开发分享-css,js进阶篇
一,css进阶篇: 等css哪些事儿看了两三遍之后,需要对看过的知识综合应用,这时候需要大量的实践经验, 简单的想法:把qq首页全屏另存为jpg然后通过ps工具切图结合css转换成html,有无从下手 ...
- 3. web前端开发分享-css,js提高篇
一. css基础知识掌握之后(个人的标准是:弄清块元素与内联元素的区别,弄清float的应用场景,弄清position[pə'zɪʃən] 下五个属性static['stætɪk],relative[ ...
- 4. web前端开发分享-css,js工具篇
web前端开发乃及其它的相关开发,推荐sublime text, webstorm(jetbrains公司系列产品)这两个的原因在于,有个技术叫emmet, http://docs.emmet.io, ...
- 5. web前端开发分享-css,js深化篇
一. css练习网易专题: 1. http://news.163.com/ 新闻 跟腾讯的新闻版式大体没有大的变化,只是细节. 2. http://news.163.com/photo/#Curren ...
随机推荐
- 在Silverlight宿主html页面添加按钮无法显示
在建silverlight应用程序时宿主html中嵌入的silverlight时出现的问题: 预想效果: 实际效果: silverlight填满整个page的所以无法显示html中其他的控件 解决办法 ...
- WPF 多项选择下拉菜单
背景 项目中有一个多项选择筛选的功能, 由于筛选条件太多, 用户又习惯在平板上进行操作, 所以要求我们把checkbox 放到一个combobox里面, 然后checkbox的选项要在combobox ...
- JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础
JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...
- .Net码农学Android---快速了解数据存储
数据存储 Andoid中的数据存储和我们平时见到的不一样,或者说移动设备的存储和平时不一样.Andoid中的存储方式有五种, 单把存储拎出来,是因为我们后续的开发会经常用到,重要性不言而喻,多样的存储 ...
- ED/EP系列3《基本指令》
Ø --APPLICATIONBLOCK(应用锁定): Ø --APPLICATION UNBLOCK(应用解锁): Ø --CARDBLOCK(卡片锁定): Ø --EXTERNAL AUTHENT ...
- 一篇文章教你读懂Makefile
makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professiona ...
- poj 1985 Cow Marathon
题目连接 http://poj.org/problem?id=1985 Cow Marathon Description After hearing about the epidemic of obe ...
- Github for Windows使用图文教程
原文:http://www.cr173.com/html/15618_1.html Git已经变得非常流行,连Codeplex现在也已经主推Git.Github上更是充斥着各种高质量的开源项目,比如r ...
- linux查看有哪些shell可用
1.命令cat /etc/shells [tansheng@localhost ~]$ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/das ...
- MFC源码不能设置断点调试
用VS2013中MFC开发应用程序时,进入MFC源码设置断点调试.但是在调试过程中发现无法进入源码.最后发现在MFC设置的MFC的使用默认值是在共享dll中使用MFC,这就意味着MFC中的源码并没有连 ...