是什么 ? | : | a stand-alone code-analysis engine for JavaScript. |
开发语言 | : | JavaScript |
官方主页 | : | http://ternjs.net |
源码仓库 | : | https://github.com/ternjs |
Tern
的目标是被代码编辑器使用,以增强代码编辑器的JavaScript代码智能编辑能力。
Tern
提供的主要特征如下:
Tern
采用了C/S
架构。采用这种架构是由它的目标所决定的,因为Tern
是为了给各种代码编辑器提供增强服务,Tern
只是提供服务就好了,它制定协议,让代码编辑器根据协议与服务进行通信即可。
1、Tern Server
是使用node.js实现的,所以,首先, 必须安装好Node.js。
2、通过npm全局安装Tern Server
:
npm install -g tern
安装完成后,有个tern
命令可以使用,执行该命令就会启动Tern Server
。
tern
命令的实现者没有提供-h
或者--help
参数来让我们看它的使用方法, 只能通过官方在线文档查看。
tern
命令的使用形式如下:
tern [option]...
option
有下面这些:
option | 说明 |
---|---|
--host HOST | 指定监听的主机,默认是127.0.0.1 |
--port NUMBER | 指定监听的端口,默认是62098 |
--verbose | 打印通信协议的具体内容,默认是不打印的 |
--persistent | 默认的,Tern Server 超过5分钟没有任何活动,就会自动关闭,如果不想让他自动关闭,使用该参数即可 |
--ignore-stdin | 默认的,Tern Server 的标准输入一旦被关闭了,就会自动关闭,如果不想让他自动关闭,使用该参数即可 |
.tern_project
文件是JSON格式。
.tern_project
文件Tern Server
的配置文件。
.tern_project
文件在Tern Server
启动的时候进行查找,如果找到,就读取它。
Tern Server
查找.tern_project
文件的过程如下:
1、在被编辑的.js
文件所在的目录中,看是否存在.tern_project
文件;如果存在,就读取;如果不存在,则实行第二步;
2、在被编辑的.js
文件的父目录中,看是否存在.tern_project
文件;如果存在,就读取;如果不存在,则实行第三步;
3、在被编辑的.js
文件的父目录的父目录中,看是否存在.tern_project
文件;如果存在,就读取;如果不存在,则继续从它的父目录往上找...
4、如果能找到就使用找到的配置,如果没有找到,就使用默认的配置, 默认的配置只支持JavaScript的基本语法,不支持其他的第三方库和Node.js语法。
基于这个向上查找的特性,为了便于一次配置,一劳永逸的方便,通常我们会在$Home
目录放一个配置,内容如下:
{
"libs": [
"browser",
"underscore",
"jquery"
],
"plugins": {
"node": {},
"node-express": {},
"tern-gulp": {},
}
}
~/.tern_config
文件与.tern_project
文件的格式完全一样。
~/.tern_config
文件就是在查找.tern_project
文件过程中,因为没有找到,而由用户指定的默认配置。