当前位置: 首页 > news >正文

全面介绍`npm`的基本使用

在软件开发的世界中,`npm`(Node Package Manager)作为JavaScript的包管理工具,扮演着举足轻重的角色。它不仅简化了依赖管理,还促进了代码的复用和分享。本教程旨在全面介绍`npm`的基本使用,帮助初学者快速上手,并为有一定经验的开发者提供进阶指导。

### 一、npm的安装

要使用npm,首先需要确保你的计算机上安装了Node.js。因为npm是随着Node.js一起安装的,所以安装Node.js会自动安装npm。

1. **访问Node.js官网**:打开浏览器,访问[Node.js官网](https://nodejs.org/),点击“Downloads”按钮,根据你的操作系统下载对应版本的Node.js安装包。

2. **安装Node.js**:下载完成后,运行安装程序,按照提示进行安装。安装过程中,npm会作为Node.js的一部分被自动安装。

3. **验证安装**:安装完成后,打开命令行工具(在Windows上是CMD或PowerShell,Mac和Linux上是Terminal),输入`node -v`和`npm -v`来检查Node.js和npm的版本,以确认它们已成功安装。

### 二、npm的基本使用

#### 1. 初始化项目

在创建新的JavaScript项目时,首先需要初始化一个npm项目,以便能够管理项目的依赖。

```bash
npm init -y # 使用-y参数将使用默认配置快速初始化
# 或者
npm init # 手动填写项目信息
```

这会在项目根目录下生成一个`package.json`文件,该文件是npm项目的核心配置文件,包含了项目的元数据和依赖信息。

#### 2. 安装依赖

在开发过程中,你可能会用到第三方库或框架。npm允许你轻松地将这些依赖添加到你的项目中。

- **安装依赖到`dependencies`**:这些依赖是生产环境中运行项目所必需的。

```bash
npm install express --save # express是一个流行的Web框架
# 或者简写为
npm i express -S
```

- **安装依赖到`devDependencies`**:这些依赖主要用于开发环境,如测试框架、构建工具等。

```bash
npm install jest --save-dev # jest是一个流行的JavaScript测试框架
# 或者简写为
npm i jest -D
```

#### 3. 卸载依赖

如果某个依赖不再需要,你可以使用以下命令将其从项目中卸载。

```bash
npm uninstall express # 卸载express及其从dependencies中的记录
# 或者简写为
npm un express
```

#### 4. 查看已安装的依赖

你可以通过以下命令查看项目中已安装的所有依赖。

```bash
npm list # 查看所有依赖,包括嵌套依赖
npm list --depth=0 # 只查看顶级依赖
```

### 三、npm的高级功能

#### 1. 脚本管理

`package.json`中的`scripts`字段允许你定义在项目生命周期中运行的脚本。

```json
"scripts": {
"start": "node app.js",
"test": "jest"
}
```

之后,你可以通过`npm run <script-name>`来运行这些脚本。

```bash
npm run start # 启动项目
npm test # 运行测试
```

#### 2. 版本控制

npm支持语义化版本控制(SemVer),允许你以`主版本号.次版本号.修订号`的格式管理项目的版本。

- 当你做了不兼容的API修改时,增加主版本号。
- 当你以向下兼容的方式添加了新功能时,增加次版本号。
- 当你做了向下兼容的问题修正时,增加修订号。

你可以使用`npm version <update_type>`来更新版本,其中`<update_type>`可以是`patch`、`minor`或`major`。

```bash
npm version patch # 更新修订号
```

更新版本后,npm还会自动将更改提交到git仓库(如果项目是一个git仓库的话),并提示你推送到远程仓库。

#### 3. 发布npm包

如果你开发了一个有用的库或工具,并希望与其他开发者分享,你可以将其发布到npm仓库。

首先,你需要在npm官网注册一个账户,并登录到你的计算机上。

```bash
npm login
```

然后,确保你的`package.json`文件中的`name`和`version`字段是唯一的,并且你的项目已经准备好被发布。

最后,运行以下命令来发布你的包。

```bash
npm publish
```

### 四、npm的最佳实践

1. **保持`package.json`的简洁性**:只列出必要的

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ISAM2运行流程
  • Mojo 实现排序功能
  • 编程框架、编程脚手架与编程项目模板
  • docker 部署 sql server
  • c++并发编程面试题
  • uniapp获取swiper中子组件的内容高度
  • ffmpeg 命令图片和视频转换
  • 【资源】wordpress 子比主题
  • 【数据结构和算法】(基础篇二)——链表
  • Centos 7.9 安装 图解版 小白必看 最新
  • Vue3+Element-plus+setup使用vuemap/vue-amap实现高德地图API相关操作
  • 嵌入式初学-C语言-二一
  • Java面试八股之什么是MQTT协议
  • 关于springboot的拦截器能力源码分析
  • URLSession之初窥门径
  • 11111111
  • avalon2.2的VM生成过程
  • ES6 ...操作符
  • javascript 哈希表
  • Java方法详解
  • React-Native - 收藏集 - 掘金
  • spring boot 整合mybatis 无法输出sql的问题
  • 第十八天-企业应用架构模式-基本模式
  • 翻译:Hystrix - How To Use
  • 和 || 运算
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 嵌入式文件系统
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 事件委托的小应用
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (java)关于Thread的挂起和恢复
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (web自动化测试+python)1
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (五)关系数据库标准语言SQL
  • (一)、软硬件全开源智能手表,与手机互联,标配多表盘,功能丰富(ZSWatch-Zephyr)
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ****Linux下Mysql的安装和配置
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .Net Core 中间件与过滤器
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .net操作Excel出错解决
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • ?.的用法
  • @component注解的分类
  • [20161214]如何确定dbid.txt
  • [2024-06]-[大模型]-[Ollama]- WebUI
  • [AI资讯·0612] AI测试高考物理题,最高准确率100%,OpenAI与苹果合作,将ChatGPT融入系统中,大模型在物理领域应用潜力显现
  • [ajaxupload] - 上传文件同时附件参数值
  • [Angular 基础] - 数据绑定(databinding)
  • [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存