包:
多个模块可以形成包,不过要满足特定的规则才能形成规范的包
NPM (node.js package management):
全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具。
npm包安装方式:
本地安装:
本地安装的包在当前目录下的node_modules里面,本地安装的包一般用于实际的开发工作
全局安装:
全局安装的包位于Node.js环境的node_modules目录下,全局安装的包一般用于命令行工具。
npm常用的命令:
1、安装包(如果没有指定版本号,那么安装最新版本)
npm install -g 包名称 (全局安装)
npm install 包名称 (本地安装)
2、安装包的时候可以指定版本
npm install -g 包名称@版本号
3、卸载包
npm uninstall -g 包名
4、更新包(更新到最新版本)
npm update -g 包名
开发环境(平时开发使用的环境)
生产环境(项目部署上线之后的服务器环境)
--save 向生产环境添加依赖 dependencies
--save-dev 向开发环境添加依赖 DevDependencies
添加依赖的作用:包在发布之后,只会提交那些源代码,node_modules里面的不会发布出来,因为文件太大了,所以通过添加依赖添加到package.json中
安装依赖:
命令行输入 npm install --production只会安装package.json里面dependencies属性所对应的包,不会安装 DevDependencies 所对应的包。
命令行输入 npm install 则package.json里面dependencies和 DevDependencies 属性所对应的包都能安装
会在package.json的json对象中加入dependencies或DevDependencies 属性,属性值是一个对象{包名:版本号}
nrm:
作用:提供了一些最常用的NPM包镜像地址,能够让我们快速的切换安装包时候的服务器地址;
什么是镜像:原来包刚一开始是只存在于国外的NPM服务器,但是由于网络原因,经常访问不到,这时候,我们可以在国内,创建一个和官网完全一样的NPM服务器,只不过,数据都是从人家那里拿过来的,除此之外,使用方式完全一样;
安装及使用:
1. 运行`npm i nrm -g`全局安装`nrm`包;(因为使用npm i nrm -g会出问题,所以改用cnpm i nrm -g)
2. 使用`nrm ls`查看当前所有可用的镜像源地址以及当前所使用的镜像源地址;
3. 使用`nrm use npm`或`nrm use taobao`切换不同的镜像源地址,默认是使用`nrm use npm`;
> 注意: nrm 只是单纯的提供了几个常用的 下载包的 URL地址,并能够让我们在 这几个 地址之间,很方便的进行切换,但是,我们每次装包的时候,使用的 装包工具,都是 npm或者cnpm(镜像地址与装包工具要区分开来,nrm为装包工具提供了更加方便快捷的下包地址)
自定义包:
包的规范:
package.json必须在包的顶层目录下
二进制文件应该在bin目录下
JavaScript代码应该在lib目录下
文档应该在doc目录下
单元测试应该在test目录下
自定义包过程:
在自定义包下面创建一个入口文件:例如index.js
命令行输入npm init,然后再进行一些初始化操作后会在包里面自动生成一个package.json文件(更为快捷的方式在命令行输入npm init -y可以不进行初始化操作)
执行index.js文件(package.json里面main属性对应的入口文件)可以在命令行输入node .;也可以通过修改package.json里面的script属性值为"scripts": {"test": "node index.js"},然后在命令行输入npm run test(运行这条命令以后会有提示执行的哪条命令)
package.json字段分析:
name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格
description:包的简要说明
version:符合语义化版本识别规范的版本字符串
keywords:关键字数组,通常用于搜索
maintainers:维护者数组,每个元素要包含name、email(可选)、web(可选)字段
contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数组的第一- 个元素
bugs:提交bug的地址,可以是网站或者电子邮件地址
licenses:许可证数组,每个元素要包含type(许可证名称)和url(链接到许可证文本的- 地址)字段
repositories:仓库托管地址数组,每个元素要包含type(仓库类型,如git)、url(仓- 库的地址)和path(相对于仓库的路径,可选)字段
dependencies:生产环境包的依赖,一个关联数组,由包的名称和版本号组成
devDependencies:开发环境包的依赖,一个关联数组,由包的名称和版本号组成
yarn基本使用:
类比npm的使用,解决了npm一些性能上面的问题,而且npm更新的时候有时候没有办法正常更新。
安装yarn工具:npm install -g yarn
1、初始化包
npm init
yarn init
2、安装包
npm install xxx --save
yarn add xxx
3、移除包
npm uninstall xxx
yarn remove xxx
4、更新包
npm update xxx
yarn upgrade xxx
5、安装开发依赖的包
npm install xxx --save-dev
yarn add xxx --dev
6、全局安装
npm install -g xxx
yarn global add xxx
7、设置下载镜像的地址
npm config set registry url
yarn config set registry url
8、安装所有依赖
npm install
yarn install
9、执行包
npm run
yarn run