npm基础教程:快速上手包管理 – wiki词典


npm 基础教程:快速上手包管理

在现代前端和 Node.js 开发中,npm(Node Package Manager)是不可或缺的工具。它不仅是一个命令行工具,更是一个庞大的 JavaScript 包生态系统,让开发者能够轻松地共享、发现和复用代码。本教程将带你快速了解 npm 的核心概念和常用操作,让你轻松上手包管理。

1. 什么是 npm?

npm 主要由三部分组成:

  1. npm 注册表(npm Registry):一个巨大的在线公共数据库,存储了数以百万计的 JavaScript 包(也称为模块或依赖)。你可以将自己的包发布到这里,也可以从中下载别人的包。
  2. npm 命令行工具(npm CLI):运行在你本地电脑上的命令行界面工具,用于与 npm 注册表进行交互。通过它,你可以安装、卸载、更新、发布和管理项目中的包。
  3. npm 网站(npm Website):提供包的搜索、文档、个人资料管理等功能,是 npm 注册表的图形化界面。

简单来说,npm 就是 Node.js 的包管理器,它的目标是让 JavaScript 模块的共享和重用变得简单高效。

2. 安装 Node.js 和 npm

npm 是与 Node.js 一起安装的。当你安装 Node.js 时,npm 也会自动安装。

  1. 下载 Node.js:访问 Node.js 官方网站 (https://nodejs.org/),下载并安装推荐的 LTS(长期支持)版本。
  2. 验证安装:安装完成后,打开命令行工具(如 macOS 的 Terminal、Windows 的 PowerShell 或 CMD),输入以下命令来检查 Node.js 和 npm 是否成功安装以及它们的版本:

    bash
    node -v
    npm -v

    如果显示版本号,则说明安装成功。

3. 初始化项目:npm init

在开始一个新项目时,通常第一步是初始化 package.json 文件。这个文件是项目的清单,记录了项目的元数据(名称、版本、作者等)以及所有项目依赖。

进入你的项目目录,运行:

bash
npm init

npm 会引导你填写一些信息,如项目名称、版本、描述、入口文件、测试命令、git 仓库、关键词和作者等。大部分情况下,你可以直接按回车键接受默认值。

如果你想快速生成一个默认的 package.json 文件,可以使用:

bash
npm init -y

这会跳过所有提问,直接生成一个带有默认值的 package.json 文件。

4. 安装依赖:npm install

这是 npm 最常用的功能之一。你可以安装两种类型的依赖:生产依赖开发依赖

4.1 安装生产依赖

生产依赖是项目在运行时所必需的包(例如 React、Express)。

“`bash
npm install

或简写

npm i “`

例如,安装 Express 框架:

bash
npm install express

这会做几件事:
* 在当前目录下创建一个 node_modules 文件夹,并将 express 包下载到其中。
* 将 express 添加到 package.json 文件的 dependencies 字段中。
* 生成或更新 package-lock.json 文件,锁定依赖的版本号,确保团队成员安装的依赖版本一致。

4.2 安装开发依赖

开发依赖是仅在开发或测试阶段需要的包(例如打包工具 Webpack、测试框架 Jest、代码格式化工具 Prettier)。它们不会被部署到生产环境。

“`bash
npm install –save-dev

或简写

npm i -D
“`

例如,安装 Jest:

bash
npm install jest --save-dev

这会将 jest 添加到 package.json 文件的 devDependencies 字段中。

4.3 安装全局包

有些工具需要在任何项目之外全局使用(例如 create-react-appnodemon)。

bash
npm install -g <package-name>

例如,安装 nodemon

bash
npm install -g nodemon

注意:全局安装的包不会记录在 package.json 中,并且可能需要管理员权限。

4.4 从 package.json 安装所有依赖

当你从版本控制系统(如 Git)克隆一个项目到本地时,项目通常只包含 package.json 文件,而不包含 node_modules 文件夹。要安装项目所需的所有依赖,只需在项目根目录运行:

bash
npm install

npm 会读取 package.jsonpackage-lock.json 文件,并安装所有列出的依赖。

5. 卸载依赖:npm uninstall

如果你不再需要某个包,可以将其卸载:

“`bash
npm uninstall

或简写

npm un “`

例如,卸载 Express:

bash
npm uninstall express

这会从 node_modules 中移除该包,并从 package.json 相应的 dependenciesdevDependencies 中删除记录,同时更新 package-lock.json

6. 更新依赖:npm update

更新项目中的依赖到最新兼容版本:

bash
npm update

这会检查 package.json 中列出的所有依赖,并在不违反 package.json 中指定版本范围(如 ^1.0.0 表示 1.x.x 的最新版本)的情况下,更新到最新版本。

要更新某个特定包:

bash
npm update <package-name>

如果想强制更新到最新版本(即使可能突破版本范围),可以使用 npm install <package-name>@latest

7. 查看依赖信息:npm list

查看项目安装的依赖树结构:

“`bash
npm list

或简写

npm ls
“`

如果你只想查看第一层依赖:

bash
npm list --depth=0

查看某个包的详细信息:

bash
npm view <package-name>

8. 运行脚本:npm run

package.json 文件中有一个 scripts 字段,你可以在这里定义自定义的命令行脚本,方便执行项目相关的任务,如启动开发服务器、运行测试、构建项目等。

json
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"test": "jest",
"build": "webpack --config webpack.config.js"
},
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"jest": "^26.6.3",
"nodemon": "^2.0.7",
"webpack": "^5.38.1"
}
}

要运行这些脚本,使用 npm run <script-name>

bash
npm run dev
npm run test

对于一些常用的脚本名称(如 starttestrestart),你可以省略 run

bash
npm start
npm test

9. package-lock.jsonnode_modules

  • node_modules:这是 npm 安装所有依赖包的目录。你通常不应该手动修改这个文件夹内的内容,也不应该将其提交到版本控制系统(通过 .gitignore 文件忽略)。
  • package-lock.json:这个文件记录了 node_modules 文件夹中所有包的精确版本、它们的依赖关系以及下载地址。它的主要作用是确保在不同环境中,npm install 命令安装的依赖是完全一致的,避免了由于依赖版本不一致导致的问题。package-lock.json 应该被提交到版本控制系统。

总结

npm 是 JavaScript 开发者的强大伴侣,通过本教程,你应该对 npm 的基础概念和常用命令有了清晰的理解。从初始化项目到安装、管理和运行依赖,掌握这些基本操作将极大地提高你的开发效率。随着你的开发经验增长,你还会发现 npm 更多高级功能,如发布自己的包、使用工作区(Workspaces)管理 Monorepo 项目等。现在,开始你的 npm 包管理之旅吧!


滚动至顶部