npm介绍和用法

第一部分:npm 是什么?​

核心定义:​

npm​ 是全球最大的 ​软件注册表​ 和 ​JavaScript/Node.js 的包管理工具。它包含三个独立但紧密相关的部分:

  1. 网站​:https://www.npmjs.com/

    • 用于发现包、管理个人资料和查看文档的门户。

  2. 命令行界面(CLI)​​:你在终端中运行的 npm命令。

    • 这是开发者与 npm 交互的主要工具,用于安装和管理包。

  3. 注册表​:一个巨大的公共数据库,存储了数百万个开源 JavaScript 包(代码库)。

    • 当你运行 npm install时,CLI 会从这个注册表中下载你需要的包。

简单理解:​

想象一下,你不是在从头开始编写每一行代码,而是可以轻松地使用全世界开发者已经写好的、经过验证的代码模块(例如,用于日期处理的 moment/day.js,用于 HTTP 请求的 axios等)。npm 就是帮助你查找、安装、更新和删除这些模块的“应用商店”或“软件管家”。


第二部分:核心概念与核心文件

在深入学习命令之前,必须理解两个核心文件:package.jsonpackage-lock.json

1. package.json- 项目清单文件

这是你项目的身份证和菜单。它记录了项目的元信息以及它所依赖的第三方包。

  • 如何创建?​

    在项目根目录运行 npm init,然后根据提示输入信息。要快速跳过提问使用默认配置,可以运行 npm init -y

  • 文件内容示例:​

    
    

    json

    复制

    {
      "name": "my-awesome-project",
      "version": "1.0.0",
      "description": "A project to learn npm",
      "main": "index.js",
      "scripts": {
        "start": "node index.js",
        "dev": "nodemon index.js",
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": ["learning", "npm"],
      "author": "Your Name",
      "license": "ISC",
      "dependencies": {
        "express": "^4.18.2",
        "lodash": "^4.17.21"
      },
      "devDependencies": {
        "nodemon": "^2.0.22"
      }
    }
  • 关键字段解释:​

    • dependencies:​生产环境依赖。即项目上线运行时所必须的包(如 express, react, vue)。通过 npm install <package_name> --savenpm install <package_name>--save是默认选项)安装的包会记录在这里。

    • devDependencies:​开发环境依赖。即只在开发阶段需要,上线后不需要的包(如代码打包工具 webpack、测试工具 jest、代码格式化工具 prettier)。通过 npm install <package_name> --save-dev安装的包会记录在这里。

2. package-lock.json- 依赖关系锁文件

这个文件由 npm ​自动生成,它精确地描述了当前项目中所有包(包括嵌套依赖)的确切版本和下载地址。

  • 为什么需要它?​

    • package.json中,版本号可能是 ^4.18.2(表示允许安装 4.x.x 的最新版本,只要主版本号是 4)。这可能导致不同时间、不同机器上安装的依赖版本略有不同,可能引发难以调试的兼容性问题。

    • package-lock.json锁死了整个依赖树,确保团队中每个成员和部署服务器安装的依赖版本完全一致,实现了“可重复的安装”。

  • 重要规则:​​ ​务必将其提交到 Git 版本控制中!​


第三部分:npm 常用命令详解

1. 初始化项目
npm init                 # 交互式创建 package.json
npm init -y             # 快速使用默认配置创建 package.json
2. 安装包
  • 安装项目依赖(根据 package.json):​

    npm install
    # 或简写
    npm i

    这个命令会读取 package.json中的 dependenciesdevDependencies,并安装所有列出的包。

  • 安装生产依赖并保存到 dependencies:​

    npm install <package_name>
    # 例如
    npm install express
  • 安装开发依赖并保存到 devDependencies:​

    npm install --save-dev <package_name>
    # 或简写
    npm i -D <package_name>
    # 例如
    npm i -D nodemon
  • 全局安装(通常用于命令行工具):​

    npm install -g <package_name>
    # 例如
    npm install -g @vue/cli

    注意:​​ 全局安装的包可以在系统的任何地方通过命令行直接运行,但它不会出现在项目的 package.json中。

  • 安装特定版本:​

    npm install <package_name>@<version>
    # 例如
    npm install react@18.2.0
3. 卸载包
npm uninstall <package_name>          # 卸载包并从 dependencies 中移除
npm uninstall --save-dev <package_name> # 卸载包并从 devDependencies 中移除
npm uninstall -g <package_name>       # 卸载全局包
4. 更新包
npm update                 # 更新所有包到 package.json 允许的最新版本
npm update <package_name>  # 更新指定包
npm outdated              # 检查有哪些过时的包
5. 查看信息
npm list                  # 列出当前项目安装的包(及其依赖树)
npm list -g --depth=0     # 列出全局安装的顶级包
npm info <package_name>   # 查看包的详细信息(版本、依赖等)
npm view <package_name> versions --json # 查看包的所有历史版本
6. 运行脚本(npm run)​

这是 npm 最强大的功能之一。你可以在 package.json"scripts"字段中定义自定义命令。

"scripts": {
  "start": "node index.js",
  "dev": "nodemon index.js",
  "build": "webpack --mode=production",
  "test": "jest"
}

运行它们:


npm run dev    # 运行自定义脚本,如启动开发服务器
npm run build # 运行构建脚本
npm test      # 运行测试,`run` 可以省略
npm start     # 运行启动脚本,`run` 可以省略

第四部分:高级用法与最佳实践

1. npx- 执行临时包

npx是 npm 自 5.2 版本起附带的工具,用于临时安装并运行一个包,运行完成后即删除。

  • 场景:​​ 你只是想尝试一个 CLI 工具(如创建一个 React 项目),但不想全局安装它。

    # 无需先执行 `npm install -g create-react-app`
    npx create-react-app my-app

    这条命令会下载 create-react-app包,执行它来创建项目,之后这个包就不会占用你的全局空间。

2. 设置国内镜像源

由于网络原因,从官方源下载可能很慢。可以切换为国内镜像(如淘宝 NPM 镜像)。

  • 临时使用:​

    npm install <package_name> --registry=https://registry.npmmirror.com
  • 永久设置:​

    npm config set registry https://registry.npmmirror.com
  • 使用 nrm(NPM registry manager)工具切换源:​

    npm install -g nrm          # 安装 nrm
    nrm ls                      # 列出可用源
    nrm use taobao              # 切换至淘宝源
3. 安全审计

npm 提供了命令来检查项目依赖中的已知安全漏洞。

npm audit       # 扫描漏洞
npm audit fix   # 尝试自动修复漏洞

总结

操作

命令

说明

初始化

npm init -y

快速创建 package.json

安装依赖

npm install

安装 package.json中的所有依赖

安装生产包

npm install <package>

安装并保存到 dependencies

安装开发包

npm install -D <package>

安装并保存到 devDependencies

运行脚本

npm run <script-name>

运行 package.json中定义的脚本

审计漏洞

npm audit

检查依赖的安全漏洞

掌握 npm 是现代 JavaScript 开发的基石。它极大地提升了开发效率,保证了项目依赖的可维护性和一致性。建议从常用命令开始,逐步熟悉 package.json和脚本的编写,最终掌握依赖管理和版本控制的精髓。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子工匠

您的认可是我持续创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值