[toc]
不同于node.js中的内置模块与自定义模块,==包是第三方个人或者团队开发出来的==,免费供所有人使用
注意:node.js中的包都是免费和开源的,不需要付费即可免费使用的
node.js的内置模块仅仅提供了底层的API,导致在基于内置模块进行项目开发的时候,效率很低
包是基于内置模块封装出来的,提供了更高级的、更方便的API,极大的提高了开发效率
从哪里下载包?
npm是全球最大的包共享包平台
提供的包管理工具Node package Manager(简称npm包管理工具),这个包管理工具随着node.js的安装包一起被安装到了用户的电脑上。
我们在使用这个包的时候,需要将其下载
在项目中安装包的命令:
npm install 包的完整名称
可以简写为:
npm i 包的完整名称
使用包
//1.导入需要的包,就是安装包的名称
const moment = require('moment')
//一般使用包的名称常量来接收
//此时参考官网文档进行使用
const dt = moment().format('YYY-MM-DD HH:mm:ss')
console.log(dt)
编译:
222022-04-25 22:18:02
初次安装包后,在项目文件夹下面多了一个叫node_modules的文件夹和package-lock.json的配置文件
d----- 2022/4/25 22:09 node_modules
d----- 2022/4/25 22:17 sasf
-a---- 2022/4/25 22:17 235 http.js
-a---- 2022/4/25 22:09 734 package-lock.json
-a---- 2022/4/25 22:09 52 package.json
node_modules文件夹:存放所有已经安装到项目中的包,require()导入第三方包时,就是从这个目录中查找并且加载包
package-lock.json配置文件用来记录node_modules目录下的每一个包的下载信息,如包的名字,版本号,下载地址等。
{
"name": "node.js",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"dependencies": {
"moment": "^2.29.3"
}
},
"node_modules/moment": {
"version": "2.29.3",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
"integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
"engines": {
"node": "*"
}
}
},
"dependencies": {
"moment": {
"version": "2.29.3",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
"integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==" }
}
}
注意:程序员不要手动修改node_modules或package-lock.json文件中的任何代码,npm包会自动维护他们
如果需要修改版本号:
npm i moment@版本号
- 第一个数字:大版本
- 第二个数字:功能版本
- 第三个数字:bug修复版本
版本号提升的规则:只要前面的版本号增长了,则后面的版本号归零