npm使用介绍

一、概念

npm 全称 Node Package Manager,是 Node.js 的官方包管理工具

二、核心作用

  1. 安装:你的项目需要某个功能(如解析 Excel、发邮件、做图表),不必自己从头写代码。打开命令行,执行 npm install 某个包名,npm 就会从它的官方仓库下载这个包及其所有依赖,放进你的项目里。
  2. 发布:如果你写了一个好用的工具库,可以通过 npm publish 命令,把它发布到 npm的公共仓库。全世界其他开发者就能通过 npm install 你的包名 来使用它。
  3. 管理版本与依赖:项目根目录下的 package.json文件就像一个"物料清单",记录了项目需要哪些包、每个包的版本。npminstall可以一键根据这个清单安装所有依赖。package-lock.json则锁定精确的版本号,确保团队或服务器上的安装结果完全一致。

三、关键文件

  1. package.json:项目清单。手工或通过 npm init
    创建,记录了项目名称、版本、依赖包(dependencies)、开发依赖包(devDependencies)、可执行脚本(scripts)等信息。
  2. package-lock.json:精确锁定每个依赖包的具体版本号和下载地址,保证在不同电脑上安装的结果完全一致。
  3. node_modules 文件夹:实际存放下载的所有包代码的地方。通常体积大、层级深,不应上传到 Git(会写入 .gitignore)。

四、常用的 npm 命令

bash 复制代码
命令	作用
npm init -y	快速创建 package.json
npm install 或 npm i	根据 package.json 安装所有依赖
npm install 包名	安装指定包,并记录到 dependencies
npm install -D 包名	安装开发依赖(测试、打包工具等),记录到 devDependencies
npm install -g 包名	全局安装(作为命令行工具使用)
npm uninstall 包名	卸载包
npm update	更新包到允许的最新版本
npm run 脚本名	执行 package.json 中 scripts 定义的命令

五、全局安装 vs 本地安装

bash 复制代码
  类型	         存放位置	             用途	                        例子
本地(默认)	  项目下的 node_modules	项目运行时需要的库	            lodash, axios
全局(-g参数) 系统目录	            提供可在任何地方运行的命令行工具	npm, yarn, create-react-app

六、补充

  1. npm 无需单独安装,它会随着 Node.js 自动安装到电脑上。
  2. npx:npm 自带的小工具,用于临时执行某个包而无需全局安装,如npx create-react-app my-app。
  3. 不要直接修改 node_modules里的代码:所有修改都会在下次安装时丢失。如果需要改包,用 patch-package 或 fork 项目。
  4. package-lock.json 要提交到 Git:确保团队成员和服务器安装完全相同的版本。
相关推荐
咩咩啃树皮6 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
阳光是sunny6 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
触底反弹6 小时前
一文搞懂 Tailwind CSS 弹性布局:从原理到实战
前端·css·html
阳光是sunny6 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
小林ixn6 小时前
从 ??= 到 onKeyDown:一个 React 组件的“自我修养”
前端·javascript·react.js
REDcker7 小时前
显示分辨率标准对照详解
前端·网络·分辨率·显示·屏幕
এ慕ོ冬℘゜7 小时前
前端实战:jQuery 多条件联合搜索(标题模糊查询 + 日历时间段筛选)
前端·javascript·jquery
武子康7 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端
一点一木8 小时前
从60首歌到1个网站:输入你的故事,还你一首歌
前端·github
IT_陈寒9 小时前
Vue这个特性差点让我加班到凌晨,谁懂啊
前端·人工智能·后端