http://www.infoq.com/cn/articles/msh-using-npm-manage-node.js-dependence