【笔记整理】npm学习总结
博客开通以来第一篇文章!文笔有限,能用代码的尽量不多说,各位看官轻拍砖....
前言:
前段时间因为想要研究一下http请求,在图灵买了小书,因为看到样例是用nodeJs写的,再加上之前就想了解下nodeJs,于是抡起袖子研究了一下...
想研究nodeJs的同学推荐大家
咳~切入正题,本篇文章主要总结下我了解到的npm相关的内容。
- 何为npm
npm是Node Package Manager的缩写,用来管理node包安装、上传、更新等操作。👉官网
2.npm安装
npm -v //查看版本
3.npm注册
npm发布自己的包之前需要先注册用户
第一种方法是👉官网 注册账户
第二种方法是用命令
npm adduser //添加用户
根据提示输入用户名、密码、邮箱后,即可注册成功!
4、npm安装包
nodeJs里的包可以通过require实现外部包的引入 ,而 npm 可以自动管理包的依赖. 只需要安装你想要的包, 不必考虑这个包的依赖包.
nodeJs 的依赖是以项目为单位管理的,直接就安装在项目(所在目录)的 node_modules 目录下,而且每个依赖都可以有指定版本的其他依赖,这些依赖像一棵树一样。
npm install <package> //包名
安装包的同时会创建package-lock.json,用以确定项目所用包的版本等信息,避免因版本出现错误。
4.1 -g参数加与不加区别细说:
- 如果加参数 -g会安装到 /usr/local/lib/node_modules/下,不加即目(所在目录)的 node_modules 目录(Mac环境下)
- 加 -g安装的全局包不能在项目中直接引用,即不能直接require引入包,但是会自动注册到path里,而不加-g的不会注册path但是可以在项目里直接引入
- 加 -g全局安装包可以避免同一个包多次下载,但是可能会出现多个项目对同一个包版本需求不一致导致冲突
- 不加 -g局部安装包可以避免版本冲突问题,同时减少作者API兼容性带来的困难,但是同一个包可能会多次安装
- 但是可以通过npm link将全局包与局部包链接起来
npm link <package> //项目中任意位置直接输入此命令,则将全局包引入项目 npm link <package> //必须在package.json所在目录执行,则可以将局部包添加到全局里
4.2安装不同版本
可以通过如下命令安装不同版本的包
npm install sax@latest //最新 npm install sax@0.1.1 //指定版本 npm install sax@">=0.1.0 <0.2.0" //范围内版本 npm install sax@"^0.1.0" //向后兼容版本
4.3 -save参数与 -save-dev参数区别
npm install 直接执行默认会安装 dependencies 字段和 devDependencies 字段中的所有模块,如果使用 --production 参数,则只安装 dependencies 字段的模块
–save:模块名将被添加到 dependencies,这个时说你在这个项目里用到了这个包,别人去安装你的包的时候会去 依赖里找这个依赖包
npm uninstall //卸载自己本地的
5.查看/查询包信息
npm list <package> //查看项目里是否安装模块 npm info <package> //查看模块具体信息,返回一个json npm search <package> //查询npm库里的包信息
6.初始化包
npm init //生成package.json文件 npm init -y -f //快速、强制生成文件
7.上传包
npm login //登陆 npm publish //发布所在项目包,之前必须登陆过,且包名必须是小写字母、数字、下划线 npm unpublish //卸载发布的包
如果不知道哪个用户连接,可以用
npm whoami //查看当前登陆账户
8.版本管理
npm version [patch/minor/major] //z版本加1,y版本加1,x版本加1
9.安装淘宝镜像cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org