Npm学习笔记

首先,声明这是整理"表严肃"老师(biaoyansu.com)的课程得来的笔记。

1.定义:

Npm(全称:Node Package Manager)是Node包管理工具。

2.“包”(链接内容):

a.定义:
包就是一坨代码可以是一个文件也可以是一个目录。
b.目的:
用来解决问题。用以解决一个或一类问题。
c.项目问题分析(链接内容):
这个世界不可能存在一模一样的两个项目(除非复制粘贴),但却可能存在两个非常相似的问题。比如:有两个大项目看似完全不一样但是把它分割成一个又一个小问题时会发现其中有很多地方是非常相似的换句话说这些问题就是一模一样。
d.由来:
如c中例子所述我们一遍又一遍地频繁解决这种问题,那我们就可以把这种解决代码封装成一个包,然后每次遇到相同问题时只需要把这个包拖下来就行。

3.出现背景:

a.项目是成长的,可能规模越来越大或者越来越复杂,所以需要的包或依赖也会越来越多。每个包都有自己的生长方式,生长的快慢他们肯定是有不同的版本,每个包都有它们各自的版本。
b.如果一个包依赖另一个包。比如:有Jquery插件叫"A"依赖着Jquery,那这个插件"A"现在版本是2然后它依赖的Jquery版本是1,现在如果把Jquery版本升到2那插件"A"很有可能会停止工作表现出来是满页都报错。
c.这时就必须查看文档了解当前这个Jquery插件用的是哪个版本的Jquery,然后把Jquery也更新掉之后你发现插件"A"好像开始工作了(但是插件"B"也依赖着Jquery)插件"B"又挂掉了(同时插件"C"又依赖着插件"B")插件"C"也跟着挂掉了。
d.基于上述糟糕的情况,Npm应运而生。它不但可以把代码从网上download下来最重要的是它可以帮我们管理不同包之间的关系(比如:这个包依赖着哪个包并且依赖那个版本号是多少当前版本号是多少)。

4.安装和更新:

a.方式:
安装Npm运行环境,Npm包含在其中也会一同安装。Npm运行环境即Node可登陆nodejs.org官网下载。
b.Node作用(链接内容):
连接Js语言和操作系统。之前Js只能跑到浏览器但是现在有了Node(作为一个桥梁)之后Js就可以调用操作系统上的一些接口(比如:操作一个文件,发送一个提醒等)。之前由于浏览器限制Js的权限即它不允许Js来调用操作系统接口。
c.验证安装是否成功:(命令行)
change directory到Npm安装目录,输入"npm -v"命令回车即可看到当前操作系统(如已安装npm)的npm版本号。分析:真正安装的是node然后node自带了npm工具。
d.如何更新(命令行)
在安装npm的当前目录输入"npm update npm@latest -g"(“latest"表示最新稳定版本;”-g"表示全局范围)命令进行更新npm。

5.常用操作:

a.比较以前(npm未出现):
当前项目需依赖哪个包就到"bootcdn.cn"官网找到相应包,下载代码到本地或拷贝链接即可。
b.比较现在(npm已出现):
b-1.先change directory到当前项目页面index.html父级目录中去,输入"npm init -y"("-y"可避免后续很多问题)命令来初始化该目录(之后会在该目录下出现package.json文件)。
b-2.npm初始化到当前目录后就可以使用npm安装jquery,bootstrap,vue等到当前目录下。比如:“npm i jquery”(“i"表示install的缩写)命令表示利用npm安装jquery。分析:当npm安装jquery时它先检查本身是否存在jquery这个东西(如不存在则报错)如存在则去下载之后安装到当前目录下的"node_modules"文件夹下"jquery"文件夹中。
b-3.输入已安装在"node_modules"文件夹下的依赖包相对目录后当前项目即可使用相应依赖包支持的语法。
b-4.当删除掉"node_modules"文件夹后(由于在package.json文件中存在当前项目的依赖包版本信息)所以我们在其父级目录下重新安装一个依赖包即可恢复已删除掉所有依赖包。
b-5.通过在"npmjs.com"官网下搜索可确保依赖包(或库)的名称正确,找到后可利用npm进行安装。
b-6.通过类似"npm uninstall jquery"命令可卸载相应依赖包。
b-7.注意:老版本的npm中不管是安装还是卸载都必须在当前新版本基础上往后追加一个”–save"以明确指定要配置当前项目依赖信息在package.json文件中。当前新版本是默认就会指定。
b-8.通过类似"npm update jquery"命令可对相应依赖包进行更新(如版本号未变则认为其就是最新版本)。
b-9.通过类似"npm i jquery@2.0.1"命令可安装较低版本(需保证该版本低于原版本)依赖包。分析:npm第一次下载依赖包时所需时间较长(下载一次后会缓存该版本的依赖包)到后面再下载同一版本依赖包时就直接从缓存中拿取。

6.常用配置项:

a.“npm init -y”("-y"如果去掉)缩写为"npm init"然后回车之后会发现:package name(只要初始化了对npm来说就是一个包对我们来说就是一个项目),version(1.0.0)等一系列属性值询问如未定义则取默认值。同样前面过程完成后会在初始化目录下生成一个package.json且package.json文件中会出现之前询问的项目信息(比如:package name,version等)。
b.package.json中"test"键表示一个命令快捷方式,其对应的值表示该快捷方式表示的真正命令。
c.package.json中"dependencies"键对应的值表示当前项目在生产环境下的依赖,“devDependencies"键对应的值表示当前项目在开发环境下的依赖(比如:通过"npm i webpack --save-dev"命令安装的webpack,这里的”-dev"就表示开发环境下)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值