Node.js(三)
Node.js第三天
一、包
1、定义
带有一个 package.json 文件的目录称为包, 用来描述多个模块之间互相依赖的关系, 通常第三方模块都是以一个
包的形式存在, 又称为 “第三方包”
2、包的来源
通常我们直接使用第三方个人或团队开发出来的软件包, 进行免费下载和使用
3、包管理器—npm
世界上有众多的第三方模块或包, Node.js 中使用了一款 npm 包管理器来管理所有的第三方包
尝试在 npm 网站上搜索你想要的包:https://www.npmjs.com/
在 npm 上下载包: https://registry.npmjs.org/
4、npm (node package manage)
下载, 更新, 卸载项目中的第三方包, 可以执行 npm -v 查看在自己电脑本机的 npm
二、npm管理命令
1、下载一个指定的包 ★
npm i 包的具体名称
2、查看一个指定包★
npm view 包的具体名称
3、下载指定版本的包★
npm i 包的具体名称@版本号
4、当我们在本地安装一个包后, 会多出两个文件:
node_modules 和 package-lock.json
node_modules 文件夹处在项目的根目录下, 用于存放安装的包
package-lock.json 是程序包的锁文件, 里面详细记录了每个包的版本信息和依赖模块, 不需要我们手动编写
- 注意:
/node_modules/.bin 这个文件夹, 专门用来存放可执行文件
package-lock.json 文件可以确保不同开发人员之间的下载的包版本保持一致, 减少版本错乱的风险
5、包管理配置文件
任何一个 npm 包必须具有 package.json 这样一个 JSON 格式的配置文件, 里面详细记录了包的名称,版本以及所依赖的其他包信息
6、开发环境和部署环境
开发环境:又叫本地环境, 只对开发者本身提供服务, 要求比较随意, 错误调试都可以打开为了更方便的检测程序;
部署环境:又叫线上环境 或 生产环境, 正式对外进行提供服务; 要确保功能完备, 用户体验友好
注意:
通常在我们的项目根目录下也会使用 package.json 这个文件来记录项目的详细信息
7、多人协作开发问题
多人合作一个项目时,第三方的包太多体积过大,node_modules 这个文件夹不易于团队成员之间进行共享,
使用包管理配置文件来记录项目中所依赖的其他第三方包,这样团队成员之间只需要共享这个配置文件就可以了
注意:node_modules 这个文件夹需要添加到 .gitignore 忽略文件中
1 | |
8、快速创建包管理配置文件★
在项目的根目录下执行 npm init -y 命令
注意:
项目目录不能使用中文命名, 不能包含空格
创建了 package.json 文件后, 每次安装包的名称和版本都会记录在这个文件中,不需要手动修改
9、dependencies配置项的作用
package.json 配置文件中有两个关键的配置项:
- dependencies: 在生产环境中所需要的软件包
- devDependencies: 仅本地开发和测试所需要的软件包
上述配置项的作用:
其他项目成员在执行 npm install 命令时,会自动根据 package.json 文件中记录的包名称和版本信息全部进行下载
10、卸载指定的包 ★
执行 npm uninstall 包名称
注意:
当命令执行成功后,dependencies 配置项下的包会自动移除
卸载包的时候不需要指定版本号
11、devDependencies 配置作用 ★
作用:
只在本地开发测试阶段需要用到的包,一般记录在 devDependencies 配置项中,后期在进行项目打包上线的时候,并不会把这些包携带到线上环境
如何安装开发测试阶段用到的包
执行命令
npm i --save-dev 包名称@版本号或
npm i -D 包名称@版本号
12、解决包下载速度的问题★
npm 下载包的问题
当我们下载国外服务器上的包时,网速较慢容易下载失败, 可以考虑把下载包的服务器(源)进行更换
更换国内的源
在任意目录下执行:
npm config set registry=https://registry.npm.taobao.org检查源有没有更换成功:
npm config get registry
补充:借助 cnpm 包,提供了下载命令
cnpm i 包名称安装:
npm i cnpm -g注意:如果npm下载包可以正常下载时,尽量少用cnpm下载包命令
13、包的分类
npm 的包从作用域上可以分为:
项目包: 被安装到项目的 node_modules 目录中的包,只能在当前项目下进行使用
- [核心依赖包] 线上环境用到的依赖包: npm i 包名称
- [开发依赖包] 开发测试环境用到的依赖包:npm i -D 包名称
全局包: 被下载到 node 安装位置 node_modules 目录下的包,可以在全局范围(任意目录)内使用
安装命令: npm i -g 包名称
卸载命令: npm uninstall -g 包名称
注意: 具有全局工具性的包才有全局安装的必要性, 可以参考 npm 官网中对包的说明
14、全局包的使用★
使用一个把 markdown 格式的文档转成 html 格式文件的工具包
安装全局包: npm i -g i5ting_toc
使用全局命令:
i5ting_toc -f 要转换的md文件 index.html
可以在此文件夹中查看已经转换的html文件
15、包的规范结构
一个包规范的组成结构:
必须以单独的目录存在
包的根目录下必须包含 package.json 配置文件
package.json 这个配置文件必须包含 name, version, main 三个属性, 分别代表包的名称,版本和包的入口
注意:
main 配置包的主入口文件,我们在使用 require(‘foo’) 引入一个包时,返回的是 foo 这个包主入口文件导出的对象
三、开发一个自己的包
1、开发自己的包
- 创建一个文件夹保存自己的开发的包
- 要包含文件:
package.json:存放包的相关信息index.js:包的入口文件README.md:使用文档
2、发布包的步骤★
编写包的说明文档
在包的根目录下添加文件 README.md 文件
注册一个 npm 账号
打开注册网址: https://www.npmjs.com/signup
pc端打开注册邮箱进行确认
点击蓝色按钮 Verify Email
在包的发布目录下面执行命令
npm publish删除已经发布的包
npm unpublish 包名称 --force
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!