npm-软件包管理器#
npm
是Node.js标准的软件包管理器。在2017年1月时,npm仓库中就已有超过350000个软件包,这使其成为世界上最大的单一语言代码仓库,并且可以确定几乎有可用于一切的软件包
它起初是作为下载和管理Node.js包依赖的方式,但其现在也已成为前端js中使用的工具
使用:
-
初始化清单文件:
npm init -y
(得到package.json文件,有则略过此命令) - 下载软件包:npm i 软件包名称
- 使用软件包
功能 | 命令 |
---|---|
执行js文件 | node xxx.js |
初始化package.json | npm init -y |
下载本地软件包 | npm i 软件包名 |
下载全局软件包 | npm i 软件包名 -g |
删除软件包 | npm uni 软件包名 |
练习#
需求:使用dayjs软件包,来格式化日期时间
准备一个空项目文件夹010,其中只有自己的server.js
在初始化项目后首先生成一个package.json文件
在下载软件包后会生成相应的文件
我们要做的是引入软件包模块并使用
// 3.使用
const dayjs = require('dayjs');
const nowDateStr = dayjs().format('YYYY-MM-DD');
console.log(nowDateStr);
效果如下:
npm-安装所有依赖#
有时我们会遇到这样的情况:从其他人或网上拿到一个项目,其中有package.json和package-lock.json,但是缺少node_modules,没有下载的软件包
若是如此则无法正常运行
因为缺少了依赖的本地软件包
为什么别人的项目没有node_modules呢?
因为,自己用npm下载依赖比磁盘传递拷贝要快得多
所以接下来解决这个问题:项目终端输入命令:
npm i
之后npm会根据package-lock.json固定的软件包数据下载好相应的软件包
做个实验#
以上面创建的项目010为例,删除其中的
node_modules
文件夹
它的原样:
我们的server.js:
// 3.使用
// 格式化日期
const dayjs = require('dayjs');
const nowDateStr = dayjs().format('YYYY-MM-DD');
console.log(nowDateStr);
// 求数组最大值
const lodash = require('lodash');
console.log(lodash.max([2, 7, 9, 4, 0, 1, 10, 23, 4]));
执行结果:
删除node_modules后果然报错了:
接下来直接输入
npm i
,结果软件包全部重新下载,项目node_modules恢复如初,再次执行server.js也没问题: