本地安装:npm命令默认情况下会将包安装到当前目录下,避免了不同程序依赖不同版本包的冲突;减少了包开发者API的兼容性的问题;缺点是会出现一个包安装多次的情况。
全局安装:提高程序重复利用,避免一个程序多个版本的情况;但是缺点是难以处理不同版本的依赖
全局安装 | 局部(本地)安装 | |
---|---|---|
命令 | npm install webpack -g | npm install --save-dev webpcak |
安装位置 | 一般在 Node安装目录下的node_modules文件夹中:\Users\用户名\AppData\Roaming\ 目录下\npm\node_modules | 项目的node_modules文件夹中 |
建议 | 工具类建议全局安装 | 项目中的包用本地 |
优点 | 只安装一次就行 | 1、据node团队介绍,本地安装包对于项目的加载会更快; 2、本地安装可以让每个项目拥有独立的包,不受全局包的影响,方便项目的移动、复制、打包等,保证不同版本包之间的相互依赖,这些优点是全局安装难以做到的。 |
缺点 | 1、包的更新不好管理 2、不能支持全局多版本 | 1、每次新项目都要本地安装所依赖的包,安装包时间相对较长,一来是包太大导致下载慢;二是浪费了硬盘空间, |
补充:
在js实例代码中,默认下node.js会在NODE_PATH和目前js所在项目下的node_modules文件夹下去寻找模块,因此,如果只是全局安装,不能直接通过require()的方式去引用模块,需要手动解决包路径的配置问题,当然你也可以复制全局安装的node_modules文件夹到项目下,还有办法可以选择将环境变量的NODE_PATH设置为C:\Program\Files\nodejs。
本地安装后可以直接通过
require()
的方式引入项目中node_modules目录下的模块
--save-dev
: 把 安装包信息写入package.json
文件的devDependencies字段
中,包安装在指定项目的node_modules文件夹下。
--save
是对生产环境所需依赖的声明(开发应用中使用的框架,库),--save-dev
是对开发环境所需依赖的声明(构建工具,测试工具).正常使用npm install时,会下载dependencies和devDependencies中的模块,当使用npm install –production或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块。