Commander,教你如何用 Node.js 開發 CLI 工具!

身為一位 CLI(Command Line Interface, CLI) 控,自幹開發用的輔助工具時當然也要自幹一個屬於自己的 CLI 工具啊!不然怎麼對得起那個常駐在下方的 Terminal 呢?不過自幹工具不是本篇重點,今天是要來跟大家講講 Commander 這一個 Node 模組。

Commander 是一個專門解析啟動程式時所輸入的參數的模組。以我們最常輸入的 npm install 這個指令為例子來說明,npm 是指程式名稱,install則是指要程式執行的動作,這個就是所謂的參數,以 C 語言來說的話大概就是 argv 這個放在 main 括號中的東西了。

繼續閱讀 “Commander,教你如何用 Node.js 開發 CLI 工具!”

GT Pack – 私藏的 Webpack 整合簡化模組。

嗨,大家好久不見。

筆者最近正朝著萬能的全端開發者邁進,而最近遇到了一個棘手的問題,就是使用 Webpack 時的各種麻煩事,所以我與我的好夥伴好朋友 Single Zero 就一起弄了這一個整合包模組,讓我們只要一些基本的設定後,什麼 ES6、Less、樣版引擎啥的都能快速搞定,而且支援在不同需求中的不同設定,然後只需要在專案根目錄下一次 webpack 指令便能根據各自的設定完成打包。

雖然比起全自由的wepback.config.js有些許限制,但個人覺得夠用了 XD

而且因為有了這個模組,我們考試都考100分就不需要再手動安裝和設定一堆有的沒的,設定到腦神經衰落還不會動。

繼續閱讀 “GT Pack – 私藏的 Webpack 整合簡化模組。”

Node.js 做一個 NPM 模組更新或安裝的進度條

前陣子因為專案需求,我需要一個在使用 npm 更新或安裝模組時回推提示的方式。原本的想法是直接透過 Node 呼叫 Shell Script 來做這件事情,等 Shell Script 做完就將視為動作完成。

但這樣其實有缺點,除了回送的無用資訊很多之外,那就是我們無法讓更新的動作被主程式所監視,還有最重要的是,這樣的方式沒有辦法做出進度條!這很重要!更新的 UI 上無法顯示進度條是我無法接受的事!

繼續閱讀 “Node.js 做一個 NPM 模組更新或安裝的進度條”

Node.js 從無到有 – 做一個簡易部落格(一)

近年最熱門的程式語言我想非 Node.js 所用的 JavaScript 莫屬。過去 JavaScript 只存在於前端網頁的互動介面,現在則是包含伺服器端的程式撰寫也都能用相同的程式語法來寫,我想這世界上大概找不到第二個守備範圍如此廣泛的程式語言了。

繼續閱讀 “Node.js 從無到有 – 做一個簡易部落格(一)”

NodeJS – 為 console.log 加上時間與檔案紀錄。

如果你有開發 Node.js 的經驗,一定相當常運用其內建的 console.log() 來作為 Debug 的方式之一。

而當整個系統完成或上線之後,就比較無法使用這種方式去找後續發生的問題,因為我們不見得能看到系統端終端機中的內容,但若為了這個紀錄功能要多寫一個 function 然後替換掉原本拿來 debug 用的 console.log …這也太麻煩了吧。

幸運的是,JavaScript 允許你用 Override 的方式來覆寫原有的程式,改成你所需要的樣子。

等一下我們就要來覆寫 console.log 這個 function 來為它加入時間戳記以及寫入一個檔案作為紀錄的功能。

開始之前

在這支程式中,我為了方便產生時間格式,有使用到 date-utils 這個模組,所以請記得在你的 Node.js 專案資料夾中安裝

並在程式碼上方加入

已便使用這個模組提供的 toFormat 功能。

程式碼

在你的程式中加入:

然後執行你的程式,應該就會看到類似下方的訊息,這樣是不是更好紀錄與找問題了呢?

參考來源:http://davidherron.com/blog/2014-04-26/overriding-consolelog-nodejs-and-other-thoughts-about-logging-node-apps

如何部屬 Nodejs 程式到 Openshift 上?

Openshift

Opebshift 是由知名的 RedHat 公司所提供的一個雲端服務,它透過 AWS(Amazon Web Service, AWS) 來提供使用者雲端主機的服務,而且是一個幾近完全功能的主機。

你可以在上面啟用 Apache、PHP、JAVA…等的支援,還支援先進的 NodeJS、GO 等新興語言,關於這服務的詳細內容可以參考香腸所撰寫的這篇文章

繼續閱讀 “如何部屬 Nodejs 程式到 Openshift 上?”

Qt Creator – No such file or directory GL/gl.h

最近開始接觸起 Qt 的開發,原因很簡單,他是一個能夠輕易輕易寫出跨平台軟體的一種函式庫。以 C++ 為基底開發語言,這一特性讓我覺得他比起 C# 來,還要更適合於我現在做的許多專題。

不過剛裝起來就碰到問題,而且是編譯一個空白程式的時候遇到的問題。

繼續閱讀 “Qt Creator – No such file or directory GL/gl.h”

AsAWirelessAdapter Update Note.

As A Wireless Adapter UI

簡介

AsAWirelessAdapter 這東西其實之前有介紹過(詳見如何於VC#中執行命令提示字元的命令?一文),不過那時候寫的不完整,草草帶過運作原理而已。今天想藉著更新,來跟大家分享在2011年時所寫的這個小程式。

AsAWirelessAdapter 其實就是 As A Wireless Adapter 的無空格句子(我相信大家都看得出來),意思就是,當一個無線交換器,也就是無線基地台的意思。

繼續閱讀 “AsAWirelessAdapter Update Note.”