包管理工具——npm
Node Package Manager,也就是Node包管理器。在前端项目中,经常使用它来管理依赖的包。
安装npm
 npm属于node的一个管理工具,所以我们需要先安装Node。Node自带有npm。
Node下载链接
查看、搜索npm包
npm官网在该网站上可以搜索相关的npm包。 :::info 发布包的时候其实就是上传到registry,下载的时候就是从registry中下载。 :::
npm配置文件——package.json
我们每一个项目都会有一个对应的配置文件,无论是前端项目(Vue、React)还是后端项目 (Node)。这个配置文件会记录着项目的名称、版本号、描述信息以及依赖库的信息和版本号等。
获得package.json
npm init [-y] # 手动从零创建项目,-y的意思就是所有选项默认yes
:::info 通过框架的脚手架创建项目时,会帮助我们生成package.json,并且里面具有相关的配置。 :::
package.json中常见的属性
- name:名称(必填)
- version:版本号(必填)
- description:描述信息
- author:作者(发布时会用到)
- license:开源协议(发布时用到)
- private:记录当前项目是否私有的,为true时,将无法发布出去。
- main:设置程序的入口 :::warning 这个入口和webpack的入口并不冲突,它是发布一个模块时会用到。
 比如- const axios = require("axios")。实际上是找对应的main属性查找文件 :::
- scripts:用于配置一些脚本命令,以键值对的形式存在。配置后我们可以通过- npm run <key>来运行脚本。 :::info 对于常用的脚本(start、test、stop、restart)可以省略run,直接通过npm start等方式运行。 :::
- dependencies:指定项目依赖的包(无论是开发时还是生产环境时)。
- devDependencies:指定开发环境需要,生产环境不需要的依赖。
- peerDependencenies:指定该项目所需要的宿主包。- element-plus是依赖于Vue3的,Ant Design依赖于react、react-dom。 
- engines:用于指定Node和npm的版本号。在安装过程中,会检查相应的引擎版本,如果不符合就报错。
- browserslist:打包工具(如webpack)的辅助属性。用于配置JS浏览器的兼容情况。- 依赖的版本管理- npm包通常需要遵循semver版本规范: - ^和- ~的区别:
- ^x.y.z:表示x保持不变,y和z永远保持最新版本。
- 
npm installnpm包安装分两种情况: 
- 全局安装 - npm install <package> -g
- 
全局安装全局安装是直接将某个包安装到全局。通常使用npm全局安装的包是一些工具包,比如webpack、yarn等。类似于axios等库文件,全局安装后,并不能让我们在所有项目中使用。 局部安装
- 安装开发和生产时依赖: - npm install <package>
- npm i <package>
 
- 安装开发时的依赖: 
- name:项目名称 
- version:版本
- lockfileVersion:lock文件的版本
- requires:跟踪模块的依赖关系
- dependencies:项目的依赖。以键值对形式存在,每个依赖名对应为键,值为对象 
- 卸载某个包 - npm uninstall <package>
- npm uninstall <package> --save-dev
- npm uninstall <package> -D
 
- 强制重新build- npm rebuild
 
- 清除缓存- npm cache clean
 
- 其他相关命令- https://docs.npmjs.com/cli/v7/commands
包管理工具——yarnyarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具; yarn 是为了弥补 npm 的一些缺陷而出现的; 早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列的问题; 早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列的问题;npm和yarn命令对比| npm | yarn | | —- | —- | |npm install|yarn install| |npm install <package>|yarn add <package>| |npm install <package> --save|yarn add <package>| |npm install <package> -D|yarn add <package> --dev / -D| |npm rebuild|yarn install --force| |npm uninstall <package>|yarn remove <package>| |npm uninstall <package> --save|yarn remove <package>| |npm uninstall <package> --save-dev|yarn remove <package>| |npm uninstall <package> --save-optional|yarn remove <package>| |npm cache clean|yarn cache clean| |rm -rf node_modulesnpm install|yarn upgrade|
 
- https://docs.npmjs.com/cli/v7/commands
cnpm
由于一些特殊的原因,某些情况下没办法很好的从 https://registry.npmjs.org下载下来一些需要的包。
设置npm镜像
此方法不推荐
# 获取当前npm仓库的地址
npm config get registry
# 设置npm镜像设置成淘宝镜像
npm config set registry https://registry.npm.taobao.org
安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
# 或者
npm install -g cnpm
cnpm config set registry https://registry.npm.taobao.org
npx工具
npx是npm5.2之后自带的一个命令。 npx的作用非常多,但是比较常见的是使用它来调用项目中的某个模块的指令。  
npx工具的作用就是运行当前文件夹下node_modules/.bin的命令
局部命令的执行
局部命令执行有三种方式:
 
 
                         
                                

