目录
理解
npm, node package manager. 包安装工具,可以帮助去安装一些所需要的模块依赖,当安装的依赖又需要其他一些依赖时,可以自动去安装下载这些依赖。
package.json
当然这就产生了一个问题,最后安装完的node_modules里有许多的文件,有许多都不是我们直接用的,不方便我们或者其他人去查看该项目真正直接使用了哪个依赖。(在npm5之后安装依赖时(不论是否使用–save指令),会有一个package-lock.json文件记录所有依赖的文件,包括这些依赖的各种信息,例如网址,版本,该依赖所需要其他依赖等信息,将这些信息记录下来也有优势,例如网址记录下来后npm就可以直接去对应的网址上下载文件了,提高了下载效率)
对于这个问题,还可以配置一个名为package.json的包说明文件,在这个说明文件里便只有我们直接使用的依赖,但需要在安装其他依赖之前需要初始化一下文件。
方案一:可以直接在根目录下新建一个package.json文件,但必须给一个空对象(就是给一对中括号),不然安装依赖时会报错。
方案二:npm init
在控制台窗口输入该指令,npm会用查询式的方式一步步引导完成文件的说明,如图:
初始化后文件内容如下:
{
"name": "test",
"version": "0.0.1",
"description": "这是一个测试文件",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "zcc",
"license": "ISC",
}
然后安装依赖,之后直接会使用的依赖会记录在dependencies属性里:
{
"name": "test",
"version": "0.0.1",
"description": "这是一个测试文件",
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "zcc",
"license": "ISC",
"dependencies": {
"art-template": "^4.13.2"
}
}
即在下载依赖时只要发现有package.json这个文件,就会自动将安装的依赖记录在该文件中。
当node_modules文件丢失时,只要package.json文件还在,即可直接在文件根目录下使用npm install 指令,将package,json文件中依赖项里的依赖全都安装下来
npm 常用命令
npm install --global npm
npm 更新
npm init
初始化package.json文件
若想直接跳过引导步骤,快速生成package.json文件,可以:
npm init -y
npm install
简写 npm i
npm uninstall
简写 npm un
npm help
对某一个指令的帮助 npm 命令 --help
npm 被墙
因为npm的服务器是建立在外网的,访问时可能受限或下载速度缓慢,我们可以切换到国内的淘宝镜像进行安装依赖,以下是两种方案:
全局下载cnpm
输入命令
npm install --global cnpm
下载之后再去安装依赖时直接使用cnpm 去输入命令
指定安装来源
如果不想下载cnpm,又想通过淘宝镜像下载,可以使用如下命令,例如:
npm i jquery --registry=https://registry.npm.taobao.org
但这样的话每次安装都需要输入后边一大堆网址,我们可以直接在配置中默认指定路径,
npm config set registry https://registry.npm.taobao.org
查看配置列表:
npm config list
可以查看到配置信息