在 Ubuntu 上使用 npm:安装、基本命令与故障排除指南

1. 引言

为什么在 Ubuntu 上使用 npm

前端和后端开发的一个基本工具是 npm (Node 包管理器)。npm 作为 Node.js 的包管理工具被广泛使用,允许开发者轻松安装和管理 JavaScript 库和工具。

在 Ubuntu 上使用 npm,您可以利用 Linux 的轻量级性能和灵活的包管理,同时显著提高开发效率。Ubuntu 是一个由大型开发者社区支持的发行版,广泛用于从服务器操作到本地开发环境的一切。

特别是,在使用基于 Node.js 的框架如 Vue.js、React 和 Next.js 时,使用 npm 管理包是标准方法。在 Ubuntu 上设置这些工具可以构建一个比 Windows 或 macOS 更少问题的稳定开发环境。

本文目的

本文提供在 Ubuntu 上安装 npm 并掌握其基本使用的逐步指南。它特别针对以下受众:

  • 新接触 Ubuntu 的开发者
  • 在 Node.js 或 npm 设置上遇到困难的人
  • 任何希望以结构化方式学习 npm 的人

介绍了多种安装方法,以及它们的特性、优点和缺点。此外,本指南涵盖常见错误、故障排除提示和有用的命令,以帮助读者在 Ubuntu 上顺利使用 npm。

2. 在 Ubuntu 上安装 Node.js 和 npm

要在 Ubuntu 上使用 npm,您必须首先安装 Node.js。由于 npm 与 Node.js 捆绑在一起,安装 Node.js 就会自动使 npm 可用。

以下是在 Ubuntu 上安装 Node.js 和 npm 的三种主要方法。每种方法都有其自身特性,因此选择最适合您的开发风格和目的的方法很重要。

方法 1:使用官方 Ubuntu 仓库

步骤

Node.js 可在 Ubuntu 的标准仓库中获得。这是最简单且最适合初学者的方法。

sudo apt update
sudo apt install nodejs npm

安装后,您可以使用以下命令检查版本:

node -v
npm -v

优点

  • 简单易懂的命令
  • Ubuntu 提供的稳定版本

缺点

  • Node.js 和 npm 版本通常较旧,因此可能无法获得最新功能

方法 2:使用 NodeSource PPA

通过使用紧密跟随官方 Node.js 支持的 NodeSource 仓库,您可以安装较新版本的 Node.js 和 npm。

步骤(示例:安装 Node.js 18.x)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

npm 与 Node.js 一起自动安装。

优点

  • 访问相对较新且稳定的版本
  • 安装简单,与 Ubuntu 兼容性好

缺点

  • 与其他 PPA 一样,可能需要依赖管理

方法 3:使用 nvm (Node Version Manager)

如果您想在多个 Node.js 版本之间切换,使用 nvm 是最灵活且强大的选项。

步骤

首先,安装 nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

然后重新加载您的 shell 并使用 nvm 安装 Node.js:

source ~/.bashrc  # or ~/.zshrc
nvm install 18
nvm use 18

npm 与 Node.js 一起自动安装。

优点

  • 自由切换 Node.js 版本
  • 每个项目设置适当的版本
  • 安全,因为它不会全局影响系统

缺点

  • 与其他方法相比,设置稍复杂
  • 需要编辑 shell 配置文件

您应该选择哪种方法?

MethodDifficultyVersion FreshnessFlexibilityRecommended For
Official Repository★☆☆△ (Older)×Beginners, first-time users
NodeSource★★☆○ (Relatively new)General developers
nvm★★★◎ (Freely selectable)Advanced users, multi-project workflows

.一般来说,nvm 是在 Ubuntu 上进行长期 npm 开发的最推荐选项。不过,如果你想要快速且简便的设置,使用 NodeSource PPA 也是一个可靠的选择。

3. 基本 npm 用法

一旦在 Ubuntu 上安装了 Node.js 和 npm,你就可以开始使用 npm 管理包。npm 是一个强大的工具,用于安装、更新和移除 JavaScript 包。

本节介绍常用的 npm 命令和基本操作。

安装包

本地安装

仅在特定项目内部使用的包应当 本地 安装。这是标准做法。包会被安装到 node_modules 目录中,并记录在 package.json 中。

npm install package-name

示例:安装 axios

npm install axios

只有同一项目内的脚本才能使用本地安装的包。

全局安装

系统范围内使用的工具(如 CLI 实用程序)应当 全局 安装。

npm install -g package-name

示例:全局安装 http-server

sudo npm install -g http-server

在 Ubuntu 上,使用 -g 可能需要 sudo

卸载包

删除本地包

npm uninstall package-name

删除全局包

sudo npm uninstall -g package-name

更新包

更新特定包

npm update package-name

更新所有依赖

npm update

更新会在 package.json 中指定的版本范围内进行,因此请注意版本约束。

安装开发依赖(–save-dev)

仅用于开发的包(如测试或构建工具)应使用 --save-dev 选项进行安装。

npm install --save-dev package-name

示例:将 jest 安装为开发依赖

npm install --save-dev jest

这会在 package.json 中的 devDependencies 下记录该包。

列出已安装的包

列出本地包

npm list

列出全局包

npm list -g --depth=0

使用 --depth=0 只显示顶层包,使输出更易阅读。

使用 package.json 管理依赖

package.json 文件是基于 npm 项目的核心组成部分。它记录了包名、版本、脚本以及整体项目配置。

你可以使用以下方式创建它:

npm init

使用默认值的简化设置:

npm init -y

4. 常见问题与解决方案

在 Ubuntu 上使用 npm 时,可能会遇到错误或异常行为。本节介绍常见问题及其解决办法。

权限错误

症状

EACCES: permission denied

原因

当当前用户没有对 npm 尝试安装包的目录的写权限时会出现此情况。在 Ubuntu 上,写入系统目录(如 /usr/lib/node_modules)需要 sudo

解决方案

  • 使用 sudo 运行:
    sudo npm install -g package-name
    
  • 或者将全局安装目录更改为用户拥有的路径:
    mkdir ~/.npm-global
    npm config set prefix '~/.npm-global'
    

将以下内容添加到 ~/.bashrc~/.profile

export PATH="$HOME/.npm-global/bin:$PATH"

应用更改:

source ~/.bashrc

未找到 npm 命令

症状

command not found: npm

原因

  • Node.js 或 npm 安装失败
  • PATH 环境变量未配置

解决方案

检查路径:

which npm

如果没有返回任何内容,请重新安装或检查 PATH 设置。如果使用 nvm,请确保初始化代码已写入你的 shell 配置文件中:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

包安装失败或版本冲突

症状

  • 安装包时出现版本冲突
  • npm install 期间出现众多警告

解决方案

npm install package-name@latest
npm ls package-name
npm install --legacy-peer-deps
rm -rf node_modules package-lock.json
npm install

有用的调试命令

  • npm doctor
    npm doctor
    
  • npm audit
    npm audit
    npm audit fix
    

5. 常见问题解答 (FAQ)

Q1. 如何在 Ubuntu 上将 npm 更新到最新版本?

A1.

sudo npm install -g npm@latest

如果您使用 nvm,则无需 sudo

Q2. 全局安装和本地安装有什么区别?

A2.

  • 本地安装 : 项目特定的依赖项存储在 node_modules
  • 全局安装 : 系统范围的 CLI 工具,通常需要 sudo

Q3. 使用 nvm 的好处是什么?

A3.

nvm 允许您安全高效地在多个 Node.js 版本之间切换,非常适合多项目开发。

Q4. 如果 npm 依赖项损坏了该怎么办?

A4.

rm -rf node_modules package-lock.json
npm install

Q5. npm WARN 和 audit 消息是问题吗?

A5.

警告不是致命的,但表示潜在问题。对于安全相关的警告,您可以尝试:

npm audit fix

Q6. 在 Ubuntu 上用 npm 可以构建什么?

A6.

  • 前端框架 (React, Vue, Svelte)
  • 静态站点生成器 (Next.js, Nuxt)
  • 后端应用 (Express, NestJS)
  • CLI 工具
  • 测试环境

6. 结论:掌握 Ubuntu 上的 npm

本文涵盖了在 Ubuntu 上安装和使用 npm 的基础知识,从设置到故障排除。

最重要的一步是亲手实验。通过运行命令并理解错误消息,您将稳步加深作为开发者的技能。

这结束了使用 Ubuntu 上 npm 的完整指南。我们希望它能帮助您构建更高效、更强大的开发环境。