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篇的更多相关文章

  1. 旨在脱离后端环境的前端开发套件 - IDT之Server篇

    IDT,一个基于Nodejs的,旨在脱离后端环境的前端开发套件,目的就是能让前端开发完全脱离后端的环境,无论后端是什么模板引擎(主流),都能应付自如. IDT主要包括两大部分:Server + Bui ...

  2. Uix Kit 快速建站前端开发套件-工具箱

    这个产品维护已经有一年了(由于业务需求不同,目前没有做中文版,产品本身是针对国外网站),自己本身是做UI出生,开发只是业余爱好,仅仅作为平时工作的需要.杂七杂八会一些前后端开发.并非职业码农! 我是一 ...

  3. 前端开发【第2篇:CSS】

    鸡血 样式的属性多达几千个,但别担心,按照80-20原则,常用的也就几十个,你完全可以掌握它. Css初识 HTML的诞生 早期只有HTML的时候为了让HTML更美观一点,当时页面的开发者会把颜色写到 ...

  4. JBOSS安装与配置搭建本地项目环境(方便前端开发调式)

    JBOSS安装与配置搭建本地项目环境  什么是JBOSS? JBOSS是EJB的服务器,就像Tomcat是JSP服务器一样,就是服务器的一种. 环境搭建如下: 一:首先安装JDK,配置环境变量(PAT ...

  5. 如何结合整洁架构和MVP模式提升前端开发体验 - 整体架构篇

    本文不详细介绍什么是整洁架构以及 MVP 模式,自行查看文章结尾相关链接文章. 整洁架构粗略介绍 下图为整洁架构最原始的结构图: Entities/Models:实体层,官方说法就是封装了企业里最通用 ...

  6. 前端开发【第3篇:JavaScript序】

    JavaScript历史 聊聊JavaScript的诞生 JavaScirpt鼻祖:Bremdan Eich(布兰登·艾奇),JavaScript的诞生于浏览器的鼻祖网景公司(Netscape),发布 ...

  7. 前端开发【第三篇: JavaScript基础】

    JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1.J ...

  8. 前端开发【第6篇:JavaScript客户端(浏览器)】

    Web浏览器中的JavaScript 客户端JavaScript时间线 1.Web浏览器创建Document对象,并且开始解析web页面,解析HTML元素和它门的文本内容后添加Element对象和Te ...

  9. 前端开发--nginx番外篇

    Centos7下Nginx开发使用(背景: 阿里云ECS Centos7) 安装和启动 安装教程 Centos7安装Nginx实战 需要主意的如下: 文中第四步 4.配置编译参数命令:(可以使用./c ...

随机推荐

  1. ios 文件操作

    1.常见的NSFileManager文件方法 -(NSData *)contentsAtPath:path //从一个文件读取数据 -(BOOL)createFileAtPath: path cont ...

  2. Python脚本控制的WebDriver 常用操作 <一> 启动浏览器

    由于本人的学习定位是基于Selenium+WebDriver+Python+FireFox+Eclipse+Pydev, 所以我的笔记也只和这方面相关. 我打算先学习基于Python脚本WebDriv ...

  3. C# 将汉字转化成拼音

    本文来自http://www.cnblogs.com/yazdao/archive/2011/06/04/2072488.html 首先下载Visual Studio International Pa ...

  4. Java 需要记得、了解的关键词 (Java 学习中的小记录)

    Java 需要记得.了解的关键词 (Java 学习中的小记录)     作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用

  5. SQL0294N 容器已在使用中。 SQLSTATE=42730

    在建立数据库后,建立表空间时,出现如下错误: CREATE TABLESPACE TABLESAPCE_NAME PAGESIZE 32K MANAGED BY SYSTEM USING ('E:\D ...

  6. .net 日期格式化

    有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换成成200506,06-2005,2005-6-6或更多的该怎么办呢 我们要用到:DateTim ...

  7. [转]linux时间同步

    转自:http://www.jotop.com/2012/vpsinfo_0525/439.html 美国的vps大多都是国外的时间,让我们的程序总是不适应.那么如何调整linux的时间为北京时间?修 ...

  8. Effective Objective-C 2.0之Note.04

    “类族”(class cluster)是一种很有用的模式(pattern),可以隐藏“抽象基类”(abstract base class)背后的实现细节.Objective-C的系统框架中普遍使用此模 ...

  9. ggplot2 学习笔记 (持续更新.....)

    1. 目前有四种主题 theme_gray(), theme_bw() , theme_minimal(),theme_classic() 2. X轴设置刻度 scale_x_continuous(l ...

  10. USB硬件远程共享解决iphone已停用

    悲剧的在iphone拆过电池之后,再开机显示iphone已停用,请在23000000分钟后再试一次 算算这得45年了,可以留给孙子用了... 网上除了刷机和有同步过的电脑貌似没有别的办法了 因是旧系统 ...