1. 程式人生 > >kibana5.6 源碼分析以--環境搭建&技術準備

kibana5.6 源碼分析以--環境搭建&技術準備

r.js 項目 構建 depend 開始 amp dash 下載源 如同

最近開始研究kibana源碼,由於對nodejs不熟悉,所以看起來非常的吃力,裏面使用到的各種node組件都是第一次接觸。需要一一學習,在此做個記錄。

一、開發環境搭建:

1、kibana5.6源碼下載:

https://github.com/elastic/kibana。選擇對應版本下載源碼

2、安裝cnpm命令(淘寶源)

npm install -g cnpm --registry=https://registry.npm.taobao.org

安裝所有架包

cnpm install

配置es:在/config/kibana.yml,

  1. 配置可訪問的elasticsearch地址:elasticsearch.url:"http://IP:port";
  2. server.host:"0.0.0.0"
  3. server.port:5601//默認可不配置

3、啟動:/bin/kibana --dev(或 npm start)

二、使用到的相關技術:

1、web框架使用的是hapi.js.它的API參考:https://hapijs.com/api;

2、前端使用了Angular.js.通過指令擴展html.這是純前臺的JS,不是功能庫,是用來開發動態網頁的框架,專註於擴張HTML的功能,提供動態數據綁定;

angular.js 學習參考:http://www.angularjs.net.cn/api/;

3、kibana5.6采用ES6(ES2015)編碼,使用babel語法轉換器編譯為瀏覽器支持的js語法,babel 網址:https://babeljs.cn/;

4、grunt是一套前端自動化工具框架,一個基於nodeJs的命令行工具,有很多插件擴展它的功能,一般用於:

  • 壓縮文件
  • 合並文件
  • 簡單語法檢查

  • 單元測試

Grunt 以及它的插件們,都作為一個 包 ,可以用 NPM 安裝進行管理。

所以 NPM 生成的 package.json 項目文件,裏面可以記錄當前項目中用到的 Grunt 插件,而 Grunt 會調用 Gruntfile.js 這個文件,解析裏面的任務(task)並執行相應操作。

API文檔:http://www.gruntjs.net/api/grunt

5、webpack 是一個現代 JavaScript 應用程序的靜態模塊打包器(module bundler)(模塊加載器兼打包工具),它能把各種資源,例如JS(含JSX)、coffee、樣式(含less/sass)、圖片等都作為模塊來使用和處理。

當 webpack 處理應用程序時,它會遞歸地構建一個依賴關系圖(dependency graph),其中包含應用程序需要的每個模塊,然後將所有這些模塊打包成一個或多個 bundle

技術分享圖片

每個項目下都必須配置有一個 webpack.config.js ,它的作用如同常規的 gulpfile.js/Gruntfile.js ,就是一個配置項,告訴 webpack 它需要做什麽。

參考文檔:https://doc.webpack-china.org/concepts/

kibana打包後靜態文件在/optimize/bundlers/中,框架是:commons.bundle.js,kibana插件是:kibana.bundle.js;timelion插件是:timelion.bundle.js;

6、Karma 是Google 開源的一個基於Node.js 的 JavaScript 測試執行過程管理工具,可以配合grunt使用:grunt-karma。官網:http://karma-runner.github.io/2.0/index.html

7、lodash : 這是一個具有一致接口、模塊化、高性能等特性的 JavaScript 工具庫。參考文檔:http://lodashjs.com/docs/

kibana5.6 源碼分析以--環境搭建&技術準備