NPM的基本使用

1. 初始化NPM

  • 会生成package.json配置文件, -y 会所有选项为默认
1
npm init -y

2. 下载NPM包

  • 会生成node_modules文件夹 会有很多文件夹和依赖 因为模块化
  • 会生成package-lock.json文件
  • package.json里dependencies会记录项目使用的包、对应版本等..
  • package.json里devDependencies会记录项目使用的开发依赖的包
  • package-lock.json里会记录依赖包的下载地址 提高包更新速度
1
npm i install 包名 @版本号

3. 第三方包的使用-Moment.js

1
2
3
4
5
6
7
8
9
10
11
// 使用moment包 npm install moment --save 默认不用写save
// 1. 导入包
let mo = require("moment")
// 2. 使用包
console.log(mo().format("YYYY-MM-DD HH:mm:ss"))
console.log(mo('2022-01-01').format("L")) // 指定时间
// 3. 可以设置语言 参数是语言编码
mo.locale('zh-CN')
console.log(mo('2022-01-01').format("L"))
console.log(mo('2022-01-01').format("LL")) // 2022年1月1日
console.log(mo('2022-01-01').format("LLL"))

4. 切换淘宝镜像源

1
2
npm config set registry https://registry.npmmirror.com/
npm config list // 查看当前镜像源

5. 全局包与本地包

1. 本地包: npm i 包名

  1. 在哪里执行命令,就在哪个文件夹安装
  2. 只对这个文件夹生效

2. 全局包: npm i 包名 -g

  1. 无论在哪里执行命令, 都会装到C盘根目录
  2. 对整个操作系统生效, 任何时候都能使用
  3. 本地包一般用于做项目开发的,主要是导入写代码的
  4. 全局包一般是工具类 (像vscode插件一样),主要是为你开发提供工具遍历的

3. 开发依赖与生产依赖

5. NPM命令大全

npm命令大全 简写 描述
npm init –yes npm init -y 初始化包, 生成package文件
npm install 包名 npm i 包名 下载包到node_module目录(默认下载最新版本)
npm install 包名 -g npm i 包名 -g 安装全局包
npm install 包名@版本号 npm i 包名@版本号 下载指定版本的包到node_module目录
npm uninstall 包名 删除本地包
npm uninstall 包名 -g 删除全局包
npm install 包名 –save-dev npm i 包名 -D 安装开发依赖包(默认安装是生产依赖)
npm config set registry=https://registry.npmmirror.com/ 切换镜像源
npm config list 查询镜像源
npm -v 查看npm版本
where node 查看node安装目录
where npm 查看npm安装目录
npm root -g 查看npm区全局包安装目录
npm list -g –deptch 查看电脑装了哪些全局包
npm install npm -g 更新电脑的npm版本

6. package.json文件讲解

1
2
3
4
5
6
7
8
9
10
11
12
{
"name": "01_use_npm", // 软件包/应用程序包 的名字, 只有作为软件包才有用, 应用程序此名随意
"version": "1.0.0", // 软件包/应用程序包 的版本, 只有作为软件包发布才有用, 供别人下载对应版本的包, 应用程序此处随意
"description": "", // 软件包/应用程序包 的简短描述
"main": "index.js", // 软件包/应用程序包 的入口, 只有作为软件包发布才有用, 别人引入你的包, 默认会引这里指定文件
"scripts": { // 定义一组可以运行的node脚本, 用npm run key名, 可以执行右侧的命令
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [], // 软件包/应用程序包相关的, 关键字数组
"author": "", // 软件包/应用程序包的作者
"license": "ISC" // 指定软件包的许可证。(商用后不允许宣传)
}