npm & package.json

npm - Node Package Manager,Node 官方的組件管理方式,

npm 透過 command line 執行,並使用 package.json 檔案幫 node.js app 管理使用組件依賴關係。
也可以讓使用者安裝已經在 npm 官網註冊的 package。

現在安裝 Node.js 會自帶 npm

查看 npm 版本

$npm -v

更新 npm 到最新的版本

$npm install -g npm@latest

使用 npm 安裝套件

例如安裝 express 包(一個 web framework)
$npm install express

可以在這找到有哪些包可以安裝
https://www.npmjs.com/

或是透過指令搜尋
$ npm search

什麼是Node.js?

Node.js 是一個平台。採用 Chrome 瀏覽器的 Javascript 引擎 - V8,為了可以簡單的建立,快速、可擴展的網路應用。    


Node.js

  • Server - side javascript
  • 單一執行緒事件迴圈 (single-threaded event loop)
  • 使用事件驅動 (event-driven),非阻斷式的 IO(non-blocking I/O) 模型。這讓他輕量並且有效率。
  • 適合在分散式的裝置上,做資料密集、即時的處理程序。

主要元件:

V8

美國Google開發的開源JavaScript引擎,用於Google Chrome中。
執行之前將JavaScript編譯成了機器碼(machine code),而非傳統方式直譯(interpreting)位元組碼(byte code),以此提升效能。
使用了如內聯緩存(inline caching)方法來提高效能。

Wiki - http://en.wikipedia.org/wiki/V8_(JavaScript_engine)



APIs

http://nodejs.org/api/

libuv

Github - https://github.com/libuv/libuv

支援多個平台的非同步I/O Libary,包含:

  • Signal handling
  • Thread pool
  • ANSI escape code controlled TTY
  • File system events
  • Asynchronous file and file system operations
  • Asynchronous DNS resolution
  • Asynchronous TCP and UDP sockets
  • event loop backed by epoll, kqueue, IOCP, event ports
  • High resolution clock
  • Threading and synchronization primitives
  • IPC with socket sharing, using Unix domain sockets or named pipes (Windows)
  • Child processes



安裝 Node.js

到Node.js的官網 http://nodejs.org/download/ 選取要安裝的平台,下載安裝即可。

官方下載連結 - http://nodejs.org/download/


安裝完畢後,開啟終端機模式。
輸入 node -v 指令。
會在畫面顯示目前安裝的 Node.js 版本號,

看到此畫面表示已安裝成功。

歸零

倒空瓶子裏的水,才能裝滿美酒。

最近時常有一種很焦慮的感覺,是一種對未來的不確定性的感覺。


我想,或許是因為心中想做的事情太多,卻又都沒有做。


以前的人說資訊就是力量。


目前處於一個資訊爆炸,又人人可以隨意取得資訊的世代。
隨著網際網路的出現,利用資訊不對等造成大量獲利的情況,將因網路的特性,逐漸被消除。
而平庸的跟頂尖的人,隨著辨別資訊消化資訊量的速度,差距逐漸被拉大。
處在這個世代的人們,該以何種策略增加在這個世界上生存的機會?


也許是多角化的經營。將自己能涉略的範圍加大,盡可能地涵蓋住每個角落。
也許是更快速的改變。隨著環境持續的變動,更快速的調整目標及方法。
也許是更專注瞭解自己。了解自己跟別人不同之處,加大與別人的差異化。
也許不是增加自己要做的,而是該減少自己想做的。


沈澱一下,找出最必要的,將精力專注在少數的項目上。
把不要的東西通通倒光,或許去蕪存菁之後,才是一個人活著的價值。