详讲npm的使用和配置!

详讲npm !

可能好多人一直在用npm ,却分不清npm到底干嘛的,每次装node时就自动把npm 装好了,那么它们到底什么关系呢 ?
别人问npm干嘛的,可能很模糊的回答一句用来装包的,那除了装一些包还有没有别的用处呢?
我这里为了让不懂npm的看懂写的很啰嗦,哈哈大佬可以选择性看

npm干嘛的 :
帮助你安装模块(包),自动安装依赖(是指假如你安装了jquery这个包,它会帮你自动安装好jquery中所依赖的其他包),管理包(增,删,更新,项目所有包),只是用来管理项目里所依赖的第三方包,并没有帮你管理项目,除了安装第三方包以外还可以帮你管理包和执行脚本。可以从npm服务器上下载别人编写的脚本和第三方库到自己本地去使用,当然你也可以把自己写的包到npm服务器上分享给别人用。

npm和node什么关系
npm使用js写的被放到node环境上运行,其实也就是node内置了npm, npm是node官方提供的包管理工具。

npm安装包

全局安装:就是意味着,任何盘符,任何目录下都可以调到这个包,假如~这个包不管在vue,react,还是小程序等等项目里都需要用到这个包,就可以考虑把这个包装到全局。

npm install 包名 -g (--golbal缩写)

或者这样

npm i 包名  -g

卸载全局包

npm uninstall 包名 -g

本地安装:本地装也就是安装项目里,包是跟着项目走的,本地安装是为了方便项目迁移,只能在当前项目目录里使用。

npm i 包名   =npm install 包名

卸载本地包

npm uninstall 包名

注意:全局和本地装的包是不互通的,如果你在命令行直接敲包名跑的是全局装的包,项目环境下的包只能借助代运行工具运行。如(npm npx)
简单说 :一般装在全局的包都是工具类的包(如放在自己电脑用来测试,练习学习的),装本地的包为了项目迁移。

npm 管理包:

生成package.json文件:命令npm init 用来初始化生成一个package.json文件,是用来管理第三方包的一个配置文件。并会记录安装的所有依赖包的包名(也可以手动创建一个package.json文件)
package.json文件里有一堆json ,这些json将要配置的是,当你下一次直接使用命令npm install 时,就会自动去找package.json文件里所有依赖的包并安装(默认安装dependenciel和devDependencies的所有包 )。同时在文件目录里生成一个node_modules文件。(所有的依赖的包都会放到这里)
因此 只需把package.json文件配置好,当别人去拿到你的项目包时只需用npm install就能拿到项目所有的依赖,所以node_moudules不需要跟着项目迁移,只需把package.json配置好带走就行。
注意:当node_modules有一些包了,在去npm install 时安装包重复时,npm 会自行帮解决重复的包。会自行进行版本对比。

npm init

生成文件如图加注释

{
 "name": "npm",	项目名称
 "version": "0.0.1",	版本
 "description": "test and play",	描述
 "main": "index.js", 入口文件
 "dependencies": {  项目依赖  上线仍然需要
   "jquery": "^3.2.1"
 },
 "devDependencies": { 开发依赖 上线不需要
   "animate.css": "^3.5.2"
 },
 "scripts": {	命令行
   "test": "命令行"  通过npm跑一些脚本帮你代运行=npm run test
    "haha": "命令行"  比如可以改为haha代运行=npm run haha
 },
 "repository": {	仓库信息
   "type": "git",
   "url": "git+https://github.com/xxx.github.io/xxx"
 },
 "keywords": [  //关键词
   "test",'xx','oo'
 ],
 "author": "xxx",
 "license": "ISC",	认证
 "bugs": {
   "url": "https://github.com/xxx.github.io/xxx"
 },
 "homepage": "https://github.com/xxx.github.io/xxx"
}

注意:项目名称name不能与npm官网上的包名一致。(如项目名不能为jquery包名等)
可直接修改项目名称name字段。(如 name:“haha”)
项目名不一定要与项目目录名一样,但是将来下载这个包时,是以项目名称为准的。

项目环境(dependencies):在当前项目下使用,上线了,到了生产上,仍然需要这个依赖。
举个梨子~ 一个项目用了jquery 依赖,上了生产上用户使用触发dom需要调到jquery此时jquery属于项目依赖,就要装到项目依赖里。
安装到项目依赖:

npm install 包名 --save  

简写

npm install 包名  -S

开发依赖(devDependencies):只能在当前项目下使用,上线了,到了生产上,就不需要使用此依赖了。
举个梨子~在项目里安装一个gulp,gulp只是用来在所开发好的代码打个包而已,打完包就不需要它了,只是在开发环境使用而已,生产并不会用到,这像这种属于开发依赖,就装到开发依赖里。
简单说 开发依赖和项目依赖区别:开发依赖生产不需要,项目这依赖生产仍需要。
安装到开发依赖:

npm install 包名 --save-dev 

简写:

npm install 包名  -D

注意~

执行 npm  install jqery   -S

会发现同时也生成了一个package-lock.json的文件,那么这个文件又是干嘛的呢
是代表一个锁,这个锁记录所有安装的日志。
注意~
可能有些人会问,在vue,react 等框架开发时,安装到项目依赖或者开发依赖并没有很大的区别呢,或者一部分人也没有注意过这个,那为什么没问题呢
因为可能在打包时用了第三方项目管理工具, 项目管理工具在打包时到生产环境上,其实是有开发环境devDependencies字段里的依赖包的 。
在没有第三方管理工具介入时就有区别了。开发依赖是上不了生产环境的。
npm 常用必备命令:

 npm list/ls  列出所有已装包
 npm outdated 版本对比(安装过得包)
 npm info 包名 查看当前包概要信息 
 npm view 包名 versions 查看包历史版本列表

把包发布到npm服务器

注册账号:npmjs.com
登录:npm login
输入:user/password/email
创建包目录->npm init -y -> 创建入口index.js -> 编写,输出-> npm publish发布

发布:npm publish 发布一定要在当前包的目录下执行命令。每次发布递增一个版本号
删除:npm unpublish
注意:每次只能卸载一个版本
npm规范:会保留最低的一个版本。

讲讲nrm:

nrm:是用来帮npm切换源的。(选择源的工具包)
安装nrm

npm install nrm -g

比如把npm的源指向taobao(切换源)

nrm use taobao
执行命令  nrm ls   列出所有的境像(仓库)

如图:
在这里插入图片描述
可以看出当前使用的是taobao境像。
nrm测试所有源:

nrm test

注意
如果你要上传npm包到官网上模块时 还需要切换到npm才能发布包。

原创不易~~希望对有帮助到理解npm的友友给个支持~给个关注。。。给个赞哦。。三克油。。
有不同理解和理多的意见的欢迎指。。。共同进步。。。。

------努力努力再努力。

`

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值