詳細說明參考:http://www.cnblogs.com/PeunZhang/p/5629329.html
我個人理解:
1、全局安裝(npm install -g)是為了用命令行,比如在windows下,如果用全局安裝gulp時,系統變量上已經能識別gulp命令。之后就是用gulp命令。但這種說法只是片面的,如果本地安裝,你進入到本地node_modules模塊下能能用命令行,不過要加路徑;還有一種就是環境變量上指向這個本地目錄也能達到目的。
2、本地安裝(npm install -save)是為了項目上能使用到這個包,會在項目文件夾上新建node_modules文件夾,然后項目上就能引用包來用。放在dependencies節點。這種說法也是片名的,實質原因是解決每個項目的多版本問題,且用全局模式的包時需要指定路徑,對項目運行效果上不夠快;所以這個是npm升級的結果導致的問題。
3、本地開發安裝(npm install -save-dev)是在開發時要用的依賴,devDependencies下列出的模塊,是我們開發時用的,比如 grunt-contrib-uglify,我們用它混淆 js 文件,它們不會被部署到生產環境。dependencies下的模塊,則是我們生產環境中需要的依賴。參考:https://www.zfanw.com/blog/difference-between-dependencies-and-devdependencies.html