nodejs项目实战教程04——npm相关概念及其使用

1. 包

之前的文章提到Nodejs可以使用核心模块和自定义模块,还可以使用第三方模块,所谓第三方模块,就是其他人写的模块(也可以是一组具有相互依赖关系的模块),他们发布到网上,我们下载后使用。但是通常我们把下载的某个第三方模块简称为包

以md5这个包为例:在包的入口文件能够看到引用的其他模块
在这里插入图片描述
但是我们通常可以直接通过包的package.json文件查看包的主文件入口以及相关依赖模块等信息
在这里插入图片描述

2. npm

npm是随同Nodejs一起安装的包管理工具,我们可以通过npm命令下载各种各样的包,这些包的源代码我们可以在https://www.npmjs.com/找到。目前为止,npm仍然是世界上最大的开放源代码的生态系统,它的使用场景有以下3种:
(1)允许用户从npm服务器下载别人编写的第三方包到本地使用。(这也是开发者最经常使用的功能)
(2)允许用户从npm服务器下载并安装别人编写的命令行程序(工具)到本地使用。(比如前面安装的nodemon或者supervisor)
(3)允许用户将自己编写的包或者命令行程序上传到npm服务器供别人使用。(可以参考我之前写的一篇文章《从零开始写node包,并完成发布、下载、使用和删除(最完整版)》

3. npm常用命令

1.安装模块(包)

// ModuleName指代包的名称
npm install ModuleName

比如安装md5软件包,我们可以使用 npm install md5 进行下载,另外install在此时可以简写为 i ,即 npm i md5 同样可以安装md5模块

2.安装指定版本的包

npm install ModuleName@版本号

3.查看包的版本号
(1)查看当前包的所有历史版本号

npm view ModuleName versions

以md5软件包为例:
在这里插入图片描述
(2)查看当前包的最新版本

npm view moduleName version

以md5软件包为例:
在这里插入图片描述

(3)查看当前包的最新版本及更多信息

npm info moduleName

以md5软件包为例:
在这里插入图片描述
3.查看本地当前目录下安装的node包

npm list

为了说明,先安装md5和silly-datetime两个软件包,再执行 npm list
在这里插入图片描述
同样,也可以直接在node_modules平级的package.json文件中的dependencies中看到下载的包(根据翻译,此时也可以称为依赖)
4.卸载模块

npm uninstall ModuleName

以silly-datetime包为例:
在这里插入图片描述
可以看到package.json中的依赖项和mode_modules的依赖文件夹都已经删除,有时候需要刷新一下文件夹。

当需要删除的包过多时,我们还可以通过删除package.json文件中的dependencies中的需要删除的包和整个node_modules文件夹,然后再重新 npm i 下载整个项目的包。

5.安装整个项目的包
在第一次下载项目的时候,通常因为考虑到文件大小的问题,上传者不会上传node_modules文件夹,所以我们就需要通过package.json文件重新下载node_modules中的依赖。进入到整个项目的package.json的上一级目录,执行:

npm i

5.生成package.json

我们使用 npm i moduleName 命令安装依赖的时候也会自动生成package.json文件。

npm init --yes

6.查看当前npm版本

npm -v

在这里插入图片描述

4. package.json

创建package.json

npm init

或者

npm init --yes

我们在安装依赖的时候 npm i moduleName ,也会自动生成package.json文件。那么这两种生成package.json的方式有什么不同呢?

4.1 安装依赖生成的package.json文件

在这里插入图片描述

4.2 使用 npm init --yes 生成的package.json文件:

在这里插入图片描述

通过对比,不难直接通过安装依赖生成的package.json文件只有dependencies属性,而通过 npm init --yes 命令生成的package.json则更像是一个包的说明文档(注意package.json不允许添加注释,否则会报错,以下注释是为了说明而添加的),唯独缺少了dependencies属性:

{
  "name": "demo04",	// 包的文件夹
  "version": "1.0.0",	// 包的版本号
  "description": "",	// 包的描述
  "main": "index.js", // 包的入口文件
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],	// 包的关键词
  "author": "",	// 包的作者
  "license": "ISC",	// 包的执照
  "dependencies": {	// 包的依赖
    "md5": "^2.3.0"
  }
}

但是如果此时我们再安装依赖:
在这里插入图片描述
就会发现dependencies依赖属性就会出现了。

4.3 安装依赖后再执行npm init

通过安装依赖生成了package.json的项目,还可以再次使用 npm init 或者 npm init --yes 重新生成package.json文件吗?直接试试看。

4.3.1 使用 npm init

在这里插入图片描述
在这里插入图片描述
可以看到使用命令 npm init 按照提示可以设置package.json的属性值,预览,确定最终生成package.json文件,并且仍然保留原来的依赖,只是位置提前到了第一个。

4.3.2 使用npm init --yes

ctrl + z恢复package.json文件,再次使用 npm init --yes 命令初始化package.json:
在这里插入图片描述
发现除了属性是默认值外,和 npm init 命令作用相同,并且仍然保留原来的依赖。

5.安装淘宝镜像

淘宝npm镜像是一个完整的npmjs.org镜像,服务部署在国内(安装依赖速度会更快),和官方服务同步频率为10分钟一次,因此可以使用淘宝镜像代替官方版本使用。

npm包官网:http://www.npmjs.org
淘宝 npm 镜像官网:https://npm.taobao.org/

下载安装淘宝镜像命令行工具:

npm install -g cnpm --registry=https://registry.npmmirror.com

安装后就可以使用 cnpm 替代 npm 除了 publish 之外的所有命令,比如:

cnpm i moduleName

下一章 nodejs项目实战教程05——Nodejs中的fs模块

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sheldon一蓑烟雨任平生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值