我个人理解:
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