npm
- npm是一个网站
npm官网,可以在上面搜索一些第三方包,你也可以写一个包,将包放在npm官网上,那么别人也可以通过npm将你的包下载下来。如果该网站上搜不到的包,那么就不能通过npm下载下来。 - npm 是一个命令行工具
只要你安装了node,就已经安装了npm
npm也有版本这个概念,你可以通过npm --version
或npm -v
来查看当前npm的版本号
升级npmnpm install --global npm
- npm常用命令
- npm init
(1)npm init -y
,可以跳过向导,快速生成
(2)npm install
,简写npm i
,自动下载package.json中dependencies中全部的依赖。
(3)npm install 包名
,简写npm i 包名
,只下载包
(4)npm install --save 包名
,简写npm i -S 包名
,下载并保存依赖项(package.json中dependencies)
(5)npm uninstall 包名
,简写npm un 包名
,只删除,如果有依赖项会依然保存
(6)npm uninstall --save 包名
,简写npm un -S 包名
,删除的同时也会将依赖信息删除
(7)npm help
,查看使用帮助
(8)npm 命令 --help
,查看对应命令的使用帮助,例如我忘记uninstall的简写,那么我可以输入npm uninstall --help
解决npm被墙问题
npm存储包文件的服务器在国外,有时候会被墙,速度很慢。
淘宝的cnpm,淘宝的开发团队把npm在国内做了一个备份
安装淘宝的cnpm,接下来你安装包的时候把之前的npm替换成cnpm
# 在任意目录执行都可以
# --global 表示安装到全局,而非当前目录
npm install --global cnpm
举个例子
# 这个还是走国外的npm服务器,速度较慢
npm install jquery
# 使用cnpm就会通过淘宝的服务器来下载jquery
cnpm install jquery
如果不想安装cnpm又想使用淘宝的服务器来下载
npm install jquery --registry=https://registry.npm.taobao.org
但每次手动这样加参数很麻烦,所以我们可以把这个选项假如配置文件中
npm config set registry https://registry.npm.taobao.org
#查看 npm配置信息
npm config list
只要经过了上面命令的配置,则你以后所有的npm install
都会默认通过淘宝的服务器下载
npm init 创建 package.json
步骤:
- 在 桌面新建node作为项目目录,在该目录下打开cmd。
- 使用 npm init 指令创建项目描述文件 package.json。
命令行里会以交互的形式让你填一些项目的介绍信息,依次介绍如下:(不知道怎么填的直接回车、回车…)
- name 项目名称
- version 项目的版本号
- description 项目的描述信息
- entry point 项目的入口文件
- test command 项目启动时脚本命令
- git repository 如果你有 Git 地址,可以将这个项目放到你的 Git 仓库里
- keywords 关键词
- author 作者叫啥
- license 项目要发行的时候需要的证书,平时玩玩忽略它
注: package.json不可以有注释,因为json文件不能有注释
C:\Users\Administrator\Desktop\node>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (node) npm-demo
version: (1.0.0) 0.0.1
description: 这是一个测试项目
entry point: (index.js) main.js
test command:
git repository:
keywords:
author: wang
license: (ISC)
About to write to C:\Users\Administrator\Desktop\node\package.json:
{
"name": "npm-demo",
"version": "0.0.1",
"description": "这是一个测试项目",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "wang",
"license": "ISC"
}
Is this OK? (yes) yes
- 在项目目录下会自动生成 package.json 文件,打开可以看到刚才配置的项目信息。
{
"name": "npm-demo",
"version": "0.0.1",
"description": "这是一个测试项目",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "wang",
"license": "ISC"
}
- 下载项目依赖包,并保存第三方包的依赖信息
如果想将项目依赖的包记录在package.json,则在npm下载时加上–save,如npm install --save jquery
或npm install jquery --save
,则在下载完毕的同时,会将该第三包依赖信息记录到dependencies。
因此建议在执行npm install 包名
时都加上--save
这个选项来保存依赖信息。
注:npm5以后的版本不用–save也能自动保存dependencies
{
"name": "npm-demo",
"version": "0.0.1",
"description": "这是一个测试项目",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "wang",
"license": "ISC",
"dependencies": {
"jquery": "^3.4.1"
}
}
- npm install
假如不小心将第三方包删除了,只要package.json还在,就可以直接使用npm install
,就会自动把package.json中dependencies中所有的依赖项都下载回来。
package-lock.json
- npm5以前没有
package-lock.json
这个文件。 - 当你安装包的时候,npm都会生成或更新
package-lock.json
这个文件。 package-lock.json
这个文件会保存node_modules
中所有包的信息(版本、下载地址),这样重新更新npm install
的时候速度就可以提升。- 从名字上来看,
lock
为锁的意思,如果没有改文件,项目重新install
下载依赖项的话,会更新到最新版本,但若有package-lock.json
,则会锁定该文件中指定的版本号,反正自动升级。
nrm的安装使用
- 作用:提供了一些最常用的npm包镜像地址,能够让我们快速的切换安装包的服务器地址。
- 镜像:由于包是存在于国外的npm服务器,由于网络原因访问不到,因此在国内,我们可以创建一个和官网完全一样的npm服务器,只不过,数据从人家那里拿过来,除此之外,使用方式完成一样,这就是镜像。
- 安装使用
- 运行
npm i nrm -g
全局安装nrm
的包; - 使用
nrm ls
查看当前所有可用的镜像源地址以及当前所使用的镜像源地址; - 使用
nrm use npm
或nrm use taobao
即可切换不同的镜像源地址 - 注:nrm只是单纯的提供了几个常用的下载包的url地址,并且能够让我们在这几个地址之间很方面的进行切换,但是我们每次安装包的时候,使用的装包工具都是npm
- 运行