---
title: 包管理器
date: 2024-10-08T08:32:03Z
tags: []
---

### 初始化

```node
npm init
```

注意事项

* 初始化可以选择加`y`​或`--yes`​急速创建`package.json`​
* ​`pakege name`​(包名)不能使用中文，大小，默认值是文件夹名称
* ​`version`​(版本号)要求`x.x.x`​的形式定义
* ISC与MIT证书功能上是相同的
* ​`package.json`​可以手创建或修改

### 下载安装包

```node
npm install `<pkg>`
npm i `<pkg>`
```

运行后文件下会增加两个资源

* ​`node_modules`​文件夹，存放下载
* ​`package-lock.json`​文件，锁定包的版本

#### 依赖

生产环境：程序员专门写代码的环境，一般是程序员的电脑，只有程序员自己访问

开发环境：代码正式运行的环境，一般是正式的服务器，每个客户都可以访问

|类型|命令|补充|
| :--------: | --------------------------------------| ------------------------------------------------------------------|
|生产依赖|npm i -S uniqnpm i -save uniq|​`-S`​是默认选项包信息保存在`package.json`​中`dependencies`​属性只在开发阶段使用的依赖包|
|开发依赖|npm i -D lessnpm i --save-dev less|包信息保存在`package.json`​中`devDependencies`​属性在开发阶段好的最终上线都会用的依赖包|

#### 全局安装

```node
npm i -g `<pkg>`
```

#### 安装所有`package.json`​中所有依赖

```node
nmp i
```

#### 安装指定版本的包

```node
npm i `<pkg>`@<version>
```

### 导入安装包

1. 在当前文件夹下`node_modules`​中寻找同名的文件夹
2. 找不到就在上级目录中下`node_modules`​寻找同名文件夹，直至找到磁盘根目录

### 删除依赖

* 局部删除

  ```node
  npm remove `<pkg>`
  npm r `<pkg>`
  ```

* 全局删除

  ```node
  npm r -g `<pkg>`
  ```

### 配置别名

```node
{
...
"script":{
    "<name1>": "<cmd>",
    "<name2>": "<cmd>"
}
...
}
```

启动命令

```node
npm run <name1>
npm <name1>
```

说明

* ​`npm run`​有自动向上级目录查找的特性

### 第三方npm

* cnpm
* yarn

  |功能|命令|
  | :------------: | -----------------------------------------------------------------------------------------------|
  |初始化|yarn inityarn init -y|
  |安装包|yarn add `<pkg>` //生产依赖yarn add `<pkg>` --dev //开发依赖yarn globall add `<pkg>` //全局安装|
  |删除包|yarn remove `<pkg>`//删除项目依赖包yarn global remove `<pkg>`//删除全局包|
  |安装项目依赖|yarn|
  |运行命令别名|yarn `<name>` //不需要run|
  |锁文件|​`yarn.lock`​|
  
* nvm

  用于管理node版本工具

‍
