目录
- 包与包管理
- 安装与卸载
- 全局安装
- 本地安装
- 卸载
- package.json
包与包管理
模块化
,包管理
,外加现代构建工具
,这三样东西共同构成了前端工程化
的基础,从此之后使用前端开发大型应用成为了可能,而包管理
就是其中承上启下的一环
什么是包
?
包是一个或多个js的集合,一个工程可以是包,通俗的讲,我们在项目中所使用到的依赖就是包,依赖可以是一个完整的框架,如Vue或React,也可以是一个很小的工具库,如mockJS,jQuery,我们通常将这些由别人编写,我们使用的包叫做第三方库
什么是包管理器
?
显而易见的是,每个包可能都会或多或少的依赖其他第三方库,这些被依赖的第三方库可能本身也会依赖其他第三方库,如果去手动维护这些依赖关系是十分复杂的,而包管理器就能自动帮助我们维护这些依赖关系
基于包管理
,我们可以很轻松的下载安装卸载我们所需的包
而不需要关心其中的依赖
,如果在这些包
之中有着重复的依赖
,包管理器
也能检测出来并处理
接下来我将以npm
这个最著名的包管理器
来作为例子
安装与卸载
在使用npm
前,我们必须确保自己的电脑中已经安装了npm
打开控制台,输入npm -v
,如果输出npm
的版本号则代表电脑里已经安装好了npm
如果没有安装则需要先去安装node
node官网
node中文网
安装node
的过程中会自动安装npm
安装过程不再赘述
全局安装
在npm
中,包有两种安装方式,一种是全局安装
,全局安装
会将包
下载到一个全局的位置,全局安装
后的包
此电脑上的所有工程都能使用
只有使用到某些全局命令
时才会使用全局安装
全局安装
的指令为
npm install -g xxx@版本号
其中xxx
为包名
,install
可以简写为i
,@版本号
可以省略不写,默认安装最新版本,即
npm i -g xxx
本地安装
npm
的第二种安装方式就是本地安装
,本地安装
会将包
下载到当前工程根目录下的node_modules
文件夹下,
我们日常开发中的包
绝大部分都是本地安装
和全局安装
不同的是,本地安装
会根据开发环境
的不同衍生出以下两个安装方式
-
开发依赖
开发依赖
即只有在开发环境
才会被打包的依赖
,通常这种依赖
在生产环境
下是要被去除的
安装一个开发依赖
很简单npm i -D xxx
其中
xxx
为包名 -
普通依赖
这种依赖
意味着无论是开发环境
还是生产环境
都需要使用到的,在打包的时候都需要被囊括进去
本地安装
默认安装为普通依赖
npm i xxx
其中
xxx
为包名
卸载
卸载npm
中的包很简单,如果是全局安装
的话需要使用以下命令
npm uninstall -g xxx
如果是本地安装
的话则需要使用以下命令
npm uninstall xxx
根据需要我们可以选择性的使用-D
参数
npm uninstall -D xxx
package.json
一般而言,我们每次开启一个新项目时都需要使用npm
来初始化
项目
npm init
此时npm
会让我们输入一些信息来完善项目,比如项目名
等
我们可以使用npm init -y
来跳过这些步骤
这行命令会帮我们生成一个叫package.json
的文件
{
"name": "demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"axios": "^1.4.0",
},
"devDependencies": {
"vite": "^4.4.6"
}
"keywords": [],
"author": "",
"license": "ISC"
}
在这段json
中,main
代表了整个程序的入口文件
是哪个,之后进行打包的时候也会通过这个文件来分析依赖
scripts
为执行命令,通过npm run xxx
来调用
dependencies
则是本地普通依赖
,在这里的依赖
无论是在开发环境
还是在生产环境
都会被打包
devDependencies
则是本地开发依赖
,在这里的依赖
只会在开发环境
被打包,生产环境
则会忽略这里面的包