最近花了一週的時間,複習了HTML、CSS、原生JS,並學習了Node.js、CoffeeScript.js、MongoDB,入了下門。node
由於準備在Rocket.chat 上作二次開發,因此先下載和安裝了Rochet.chat 的環境。因爲Rocket.chat在Mac環境下下載和運行很是簡單,因此相關的文章很是少,可是仍是有一些坑,會讓咱們懷疑是否是沒這麼簡單,這裏記錄下Rocket.chat 的下載和運行過程。git
Rocket.Chat 是特性最豐富的 Slack 開源替代品之一。 它的github 地址是github.com/RocketChat/…github
主要功能:羣組聊天,直接通訊,私聊羣,桌面通知,媒體嵌入,連接預覽,文件上傳,語音/視頻 聊天,截圖等等。web
Rocket.Chat 原生支持 Windows,Mac OS X ,Linux,iOS 和 Android 平臺。Rocket.Chat 經過 hubot 集成了很是流行的服務,好比 GitHub,GitLab,Confluence,JIRA 等等。mongodb
高級的特性包括:OTR 消息,XMPP 多用戶聊天,Kerberos 認證,p2p 文件分享等等。數據庫
最重要的是它是100%開源,能夠快速編譯出iOS、Android 安裝包。npm
因爲Rocket.chat 使用的是Meteor 框架,而Meteor 框架是對Node.js 的封裝,源碼中又使用到了CoffeeScript.js,使用的數據庫是MongoDB,因此要在Rocket.chat 上作二次開發,就須要學習的技術有Meteor、Node.js、CoffeeScript.js、MongoDB、HTML(5)、CSS等。promise
其餘資料:瀏覽器
CoffeeScript中文網:coffee-script.org/緩存
Meteor中文教程:zh.discovermeteor.com
Rocket.chat 要運行,必需要安裝Node.js、NPM、Meteor(包含了MongoDB)。
Node.js 的安裝很簡單,只須要從官網下載pkg安裝包,而後雙擊安裝便可。Node.js 中包含了NPM,因此當Node.js安裝完成後,NPM也安裝完成了。
安裝完成後能夠在終端中測試一下:使用node -v
和 npm -v
能夠查看安裝的Node.js 和NPM的版本。
Mac 下安裝Meteor 使用一行命令便可:
curl https://install.meteor.com/ | sh
複製代碼
下載安裝過程是這樣的:
等下載到100%後,就表明Meteor 已經安裝完畢。安裝完畢,你會看到以下提示:通常說來到這裏,Meteror環境已經安裝好了,咱們能夠先建立一個小工程,測試一下Meteor的環境,以確保Meteor環境正常(由於後面安裝Rocket.chat會出現各類錯誤,致使你懷疑Metor有問題)。
建立一個小工程的指令,首先進入咱們要保存的項目的文件夾,而後依次輸入以下三個指令:
$ meteor create my_cool_app
$ cd my_cool_app
$ meteor
複製代碼
這裏是終端提示的指令有一點點區別,~/表明是在當前用戶根目錄。
我依次輸入的命令:
在瀏覽器中輸入: http://localhost:3000/ ,而後會看到這樣的頁面,即表明小項目運行正常:下載Rocket.chat 最好使用git 的命令:
git clone https://github.com/RocketChat/Rocket.Chat.git
複製代碼
等工程源碼下載完畢後,進入對應文件夾,而後運行:
cd Rocket.Chat
meteor
複製代碼
在執行meteor
命令,運行時可能會遇到以下的錯誤信息:
=> Started proxy.
=> Started MongoDB.
/Users/yf/.meteor/packages/meteor-tool/.1.4.2.zi1w5b++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/meteor-promise/promise_server.js:190
throw error;
^
Error: EBADF: bad file descriptor, read
at Error (native)
=> awaited here:
at Promise.await (/Users/yf/.meteor/packages/meteor-tool/.1.4.2.zi1w5b++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/meteor-promise/promise_server.js:39:12)
at Object.wrapper [as readFile] (/tools/fs/files.js:1522:32)
at /tools/isobuild/isopack.js:979:15
at Array.forEach (native)
at Function._.each._.forEach (/Users/yf/.meteor/packages/meteor-tool/.1.4.2.zi1w5b++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
複製代碼
這個錯誤提示,我懷疑是工程未下載完整,或者有文件缺失致使的。
個人作法:刪除工程,而後在網絡較好的狀況下,從新執行
git clone
命令 下載工程。這個錯誤沒有再出現。
若是遇到下面這個錯誤:
解決辦法: 執行
npm cache clean
命令,清除npm 下載的庫的緩存,而後再次運行,項目就會正常跑起來。
當項目正常運行,咱們會看到以下提示信息:
若是你到了這裏,恭喜你! Rocket.chat 已經正常跑起來了,咱們能夠在瀏覽器內輸入http://localhost:3000/ ,就會看到Rocket.chat的登陸頁面。提示: 第一個註冊的用戶是管理員,後面註冊的都是普通用戶。 管理員有管理系統的權限,這個本身去系統裏摸索吧。
我登陸以後是這樣的:
Mac 下安裝運行Rocket.chat到這裏就OK了,但願能幫助你解決一些問題。