什么是npm

npm是Nodejs的包可视化工具,在目前实用化前面工程项目师全全过程中,npm包起着非常重要的作用。

安装npm

作为nodejs的包可视化工具,npm随着着nodejs一起安裝的。一般情况下,在大家安裝开展nodejs以后,npm也就伴随着安裝了。

倘若要更新npm,可以选用下列指令:

npm install npm -g

npm镜像

npm给与了官方网网的镜像系统软件管理方法库房: 官方网站仓库,倘若我们要运用某一元器件库,可以 在这个服务平台里边进行检索,接着运用npm进行安裝。

由于我国的互联网室内空间,一般 大家会设定淘宝的镜像系统软件,设定方法

npm config set registry https://registry.npm.taobao.org

要查看设定了哪些关键主要参数,运用指令:

npm config ls

从这之中可以看到自然环境自变量的具体地址:C:\Users\Administrator\.npmrc

运用npm安装文件

复位环境变量

在运用npm之前,要先复位npm的环境变量,运用下列指令:

npm Init

这个时候会产生一个复位的正确对待cmd,使你输入新项目整体规划、版本信息、原创者、协议书书等,如果你觉得这类输入起来不方便,可以 再加上基本参数来运用初值:

npm init --yes

运用以上指令,会在文档目录转换成package.json。下面是这一默认 环境变量的注释

{
  "name": "demo1",      //名称
  "version": "1.0.0",   //版本信息
  "description": "",    //描述
  "main": "index.js",   //安全通道文本文档
  "scripts": {          //脚本制作,key-value格式文件,可以运用 npm run xxx
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],       //关键字
  "author": "",         //原创者
  "license": "ISC"      //合同书
}

包版本信息

npm包的版本信息取名字格式文件为: major.minor.patch

  • major: 主版本信息,新的构架调节,兼容难题老版本

  • minor: 次版本信息,提升功效,兼容老版本

  • patch: 修补版本信息内容,修复BUG,兼容老版本

在大家安裝一个包之后,可以 看到包名的前面有一些标识,例如 ^~等,这类标识管理决策了现如今最新项目借助的包的版本信息如何选择

  • 没有标识,例如1.2.5,说明尽量借助1.2.5版

  • ~:大概匹配某一版本信息,倘若minor版本信息特殊了,那么minor版本信息始终不变,而patch版本号随便,倘若minor和patch版本号找不到,那么minor和patch版本号随便。

例如:

如:~1.1.2,说明>=1.1.2 <1.2.0,可以 是1.1.2,1.1.3,1.1.4,.....,1.1.n 
如:~1.1,说明>=1.1.0 <1.2.0,可以是跟上边一样
如:~1,说明>=1.0.0 <2.0.0,可以 是1.0.0,1.0.1,1.0.2,.....,1.0.n,1.1.n,1.2.n,.....,1.n.n
  • ^:兼容某一版本信息,版本信息中最左边的非0数据信息的右侧可以 随便,倘若欠缺某一版本信息,则这一版本信息的位置可以随便
    例如:

如:^1.1.2 ,说明>=1.1.2 <2.0.0,可以是1.1.2,1.1.3,.....,1.1.n,1.2.n,.....,1.n.n
如:^0.2.3 ,说明>=0.2.3 <0.3.0,可以是0.2.3,0.2.4,.....,0.2.n
如:^0.0,说明 >=0.0.0 <0.1.0,可以是0.0.0,0.0.1,.....,0.0.n

别的的一些撰写:

  • >:尽量超出某一版本信息,如:>1.1.2,说明尽量超出1.1.2版

  • >=:可大于或等于某一版本信息,如:>=1.1.2,说明可以 等同于1.1.2,还能够超出1.1.2版本信息

  • <:尽量小于某一版本信息 ,如:<1.1.2,说明尽量小于1.1.2版本信息

  • <=:可以 小于或等于某一版本信息,如:<=1.1.2,说明可以 等同于1.1.2,还能够小于1.1.2版本信息

  • x-range:x的区域说明随便版本信息,如:1.2.x,说明可以 1.2.0,1.2.1,…..,1.2.n

  • *-range:随便版本信息,””也说明随便版本信息,如:*,说明>=0.0.0的随便版本信息

  • version1 - version2:高过或相当于version1,不得超过version2,如:1.1.2 – 1.3.1,说明包括1.1.2和1.3.1以及他们件的随便版本信息

  • range1 || range2:做到range1或者做到range2,可以 很多范围,如:<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 ❤️.0.0,说明做到这3个范围的版本信息都可以

scripts

scripts节点下配置的是可以 运行的脚本制作。例如在默认 配置中的test脚本制作,我们可以依靠下面的指令来开启:

npm run test

倘若我们要再加上别的脚本制作,可以在scripts节点再加上键值对:

"scripts": {          //脚本制作,key-value格式文件,可以运用 npm run xxx
    "test": "echo \"Error: no test specified\" && exit 1",
    "dir": "dir"    //Windows下说明文档目录文档目录
}

接着运用npm来运行该脚本制作:

npm run dir

这里便是为了能能够更好地演试scripts脚本制作的操作方法,它的实际效果是因为能减轻我们在产品研发时的同样工作中中。再举个例子,例如运用Webpack装袋,可以运用指令npx webpack --mode=production,如果我们每一次都运用详尽的指令,会显得很复杂,这时候我们可以定义一个脚本制作来简单操作过程:

"scripts": {          //脚本制作,key-value格式文件,可以运用 npm run xxx
    "test": "echo \"Error: no test specified\" && exit 1",
    "dir": "dir",    //windows下说明文档目录文档目录
    "build": "npx webpack --mode=production"
}

在大伙儿产品研发的情形下,马上运用npm run build指令就可以。

dependencies 和 devDependencies

简言之,dependencies 是依赖的包,devDependencies 是产品研发时依赖的包。例如大伙儿工程项目中选用了jQuery,很不言而喻这也是最新项目运行时需要的,那么在再加上包时,运用下列指令进行安裝:

npm install jquery

而对于webpack等在开发设计设计方案时要于构建工程项目的包,大伙儿仅在开发时应用,最新项目运行时不太可能运用,因此务必把她们再加上到设计开发借助中,再加上方法 下列:

npm install webpack --save-dev

# --save-dev 可以 简称为 -D,简单后的指令下列:
npm install webpack -D

package.lock.json

我们在安装包时,可以 看到它的版本信息借助,默认 是兼容大版本信息就可以。这时候会产生一个难点,就是在不一样的顾客电子计算机中,复位的包的最新版本有可能会出现不一样的情况,从而造成 未如的bug。为了更好地能够更好地彻底消除这个问题(这也是yarn面世的一个原因),npm在5.0之后引入了package.lock.json文本文档,用以固定不变包的版本信息、包的网络服务器ip等信息,保证在不一样的顾客开发环境中加载的是一致的包。

当顾客运用npm install指令来安裝大伙儿的借助项时,会从package.lock.json文本文档中完成安裝。官方网站文本文件:package.lock.json

安装包

在大家从别人的源代码复位安裝所有借助的包时,运用下列指令:

npm install

在大家为工程项目再加上新的包时,运用下列指令:

# 安装包
npm install webpack --save

# 上面指令的基本参数 --save 为默认 可选项,可以 忽略,因此可以简单为:
npm install webpack

# 全面性安裝
npm install webpack -g

# 安裝到设计开发借助
npm install webpack -g --save-dev

# 上面这行指令还可以简称为下面这一行
npm i webpackage -g -D

安裝独特版本信息的包:

npm install webpack@5.50.0

从指定的源安装包:

npm install -g cnpm --registry=https://registry.npm.taobao.org