一.npm的介绍与使用
1.npm包管理器
npm是node.js官方提供的包管理工具,npm专门管理第三方模块,第三方模块是他人写好的文件,需要时通过npm进行下载
2.npm使用
下载命令:
npm install 包名 # 下载一个包
例如:
npm install jquery # 下载jquery
卸载命令:
npm uninstall 包名
下载不成功:
- 检测命令是否正确
- 尝试重新安装—可能是中途网络不佳
- 清除缓存 – 命令: npm cache clean -f
使用说明:
- install关键字可以简写为i
- 默认下载的是最新版本,要下载指定版本可以在包名后面加@版本号
- 可以同时下载多个包,多个包名中间用空格隔开
- 每次下载会自动生成一个文件:package.json—里面下载的各种信息
重要:package.json的重要性
package.json
这个文件用来描述当前项目的各种信息。通常一个项目中会使用到很多的包、库、模块、插件等等,到项目完成的时候,node_modules
这个文件夹会很大,如果要上线了或者要放到别的地方运行,将这个文件夹复制的话,会很大。解决这个问题,可以使用package.json
。在这个文件中可以将项目依赖的包的信息,写进去,以后别人拿到这个文件就能知道,这个项目依赖的包有哪些。
3.修改npm全局安装的地址
1.第一步:在你想要更改的目录下新建两个文件夹 node_cache 和 node_global
我的盘符:E:\node
2.第二步:使用命令提示符,输入以下两条执行命令
npm config set prefix “E:\node\node_global”
npm config set cache “E:\node\node_cache”
3.第三步:更改环境变量—在属性–高级系统设置----环境变量
-
设置用户变量----path变量中添加
-
设置系统变量
4.使用package.json文件
- 拿到文件,执行命令,会根据package.json的包信息依次进行下载
npm i
- 如果安装失败,可以通过以下命令清除npm缓存
npm cache clean -f //其中 -f 表示强制清除
#或者在执行完命令再删除缓存文件夹
5.全局安装与局部安装
1.全局安装
只需要在当前电脑上安装一次,在电脑的任何地方都能使用
npm install --global 包名;
npm install -g 包名;
- 安装模块到全局,不会在项目node_modules目录中保存模块包。
- 不会将模块依赖写入devDependencies或dependencies 节点。
- 运行 npm install 初始化项目时不会下载模块。
2.局部安装
局部安装只是在当前文件夹中安装
开发依赖和生产依赖的区别
-
-S 或 --save — 生产依赖
-
–save:将保存配置信息到pacjage.json的dependencies节点中。
-
运行 npm install 初始化项目时,会将模块下载到项目目录下
-
-
-D 或 --save-dev 开发依赖
-
–save-dev:将保存配置信息到pacjage.json的devDependencies节点中。
-
运行 npm install 初始化项目时,不会将模块下载到项目目录下
-
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块,项目发行到生产环境中,不再需要这个依赖包
-
因此:
dependencies:运行时的依赖,发布后,即生产环境下还需要用的模块
devDependencies:开发时的依赖。里面的模块是开发时用的,发布时用不到它
注意事项:
npm install 包名 #没有 -S -D 默认是-S
- 安装模块到项目node_modules目录下。
- 将模块依赖默认写入dependencies 节点。
- 运行 npm install 初始化项目时会下载模块。
6.初始化项目
-
创建一个文件夹,cd到这个文件夹,以管理员身份打开这个文件夹,执行以下命令
同时会询问几次信息
npm init
- 如果不想输入很多信息,可以全部使用默认值
npm init -y
注意:
- 使用默认时,当前的文件夹名不能是中文,否则会失败
- 初始项目完成,会出现package.json,安装依赖包时package.json会添加依赖包的信息
{
"name": "03-npm", //描述了包的名字,不能有中文
"version": "1.0.0", //描述了包的的版本信息, x.y.z 如果只是修复bug,需要更新Z位。如果是新增了功能,但是向下兼容,需要更新Y位。如果有大变动,向下不兼容,需要更新X位。
"description": "", //包的描述信息
"main": "index.js", //入口文件(模块化加载规则的时候详细的讲)
"scripts": { //配置一些脚本,在vue的时候会用到,现在体会不到
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [], //关键字(方便搜索)
"author": "", //作者的信息
"license": "ISC", //许可证,开源协议
"dependencies": { //重要,项目的依赖, 方便代码的共享 通过 npm install可以直接安装所有的依赖项
"bootstrap": "^3.3.7",
"jquery": "^3.3.1"
}
}
7.nrm的使用
1.nrm的介绍
- npm在下载包的时候,默认下载地址在国外,有时候网速不太好。所以node提供了一个工具用来管理npm下载工具,可以改变npm的下载地址,这个工具就是nrm
- nrm这个工具不自带,需要手动下载安装
2.nrm的下载
npm i -g nrm #全局安装
检测是否安装成功:
nrm -version
如果安装成功后出现以下情况:
解决方案:
找到nrm安装地址,找到cli.js,使用编辑器打开,修改cli.js的18行
3.nrm的使用:
nrm test # 用来检测哪个地址下载速度快一些,当前使用地址前面会带*
镜像源:类似npm的下载地址
切换镜像源:
nrm use taobao # 将下载地址切换成taobao的镜像源
nrm current # 展示当前的镜像的名字
npm config get registry # 获取是否设置下载地址成功
**注意:**使用下载包的命令,还是用npm,但是使用npm时,下载地址先走向国外然后再走向国内地址进行安装,还是会偏满,可以直接下载cnpm 直接获取国内地址进行安装。使用cnpm也有可能导致某一些包下载不成功,原因cnpm下载地址不包含该模块包,npm中包含该模块包,此时可以通过npm进行下载
urrent # 展示当前的镜像的名字
npm config get registry # 获取是否设置下载地址成功
**注意:**使用下载包的命令,还是用npm,但是使用npm时,下载地址先走向国外然后再走向国内地址进行安装,还是会偏满,可以直接下载cnpm 直接获取国内地址进行安装。使用cnpm也有可能导致某一些包下载不成功,原因cnpm下载地址不包含该模块包,npm中包含该模块包,此时可以通过npm进行下载