Node.js - Arch Linux 中文维基

跳转到内容

# Node.js

来自 Arch Linux 中文维基
翻译状态：

- 本文（或部分内容）译自 Node.js，最近一次同步于 2026-04-30，若英文版本有所更改，则您可以帮助同步与翻译更改的内容。
- 您可以在 ArchWiki 的对应页面找到本文翻译的原始修订历史。
- 本文可能与英文原文存在出入。

Node.js 是一个 javascript 运行环境，并附带有功能丰富的库.使用 Google's V8 引擎在浏览器外执行代码。 由于 Node.js 是事件驱动、非阻塞 I/O，非常适合于实时 web 应用。

## 安装

安装 nodejs包。还可以安装长期支持版本：

- nodejs-lts-krypton包 - 24.X
- nodejs-lts-jod包 - 22.X
- nodejs-lts-iron包 - 20.X

### 多版本需求

如果需要使用多个 nodejs包 版本，可以使用 NVM (Node Version Manager)。nvm包 可以很方便的安装多个版本，并在版本间快速切换。命令很简单：

将下面命令加入 shell 的启动文件：

    # Set up Node Version Manager
    source /usr/share/nvm/init-nvm.sh

项目的 GitHub 页面包含使用文档，命令很简单：

    $ nvm install 8.0
    Downloading and installing node v8.0.0...
    [..]

    $ nvm use 8.0
    Now using node v8.0.0 (npm v5.0.0)

使用 nvm包 时，可以用 pacman 的 `--assume-installed nodejs=<version>` 参数避免安装系统提供的版本。

如果希望在目录存在 `.nvmrc` 时自动执行 `nvm use`，将此配置添加到 shell 初始化文件。

## Node Packaged Modules

npm 是官方的 node.js 包管理器，通过 npm包 进行安装。

### 使用 npm 管理包

#### 安装软件包

任何包可以用以下命令安装：

    $ npm install packageName

这个命令会将包安装在当前目录下 `node_modules` 目录内，可执行命令（如果有）安装在 `node_modules/.bin` 目录下.

作为系统级的全局安装使用 `-g` 选项:

    # npm -g install packageName

默认情形下这个命令会将包安装至 `/usr/lib/node_modules/npm`，需要管理员权限.

### 用户级别安装

作为个人用户级的安装您可以使用一个本地目录来配置 `npm` 。请配置 `npm_config_prefix` 用户环境变量。npm 和 yarn 都会使用此环境变量。

    ~/.profile

    PATH="$HOME/.node_modules/bin:$PATH"
    export npm_config_prefix=~/.node_modules

不要忘记重新登录或读取新配置。

也可以在 `npm install` 时指定 `--prefix` 参数，但是不建议使用这个方式，因为需要每次安装全局软件包时都记得使用此参数。

    $ npm -g install packageName --prefix ~/.node_modules

还有一个方式是设置 `$HOME/.npmrc` 中的 `prefix`。这和设置 `.profile` 中的 `npm_config_prefix="$HOME/.local"` 具有同样的效果，但是仅应用于 npm。

    $ npm set prefix="$HOME/.local"

#### 更新包

更新包只需要执行

     $ npm update packageName

对于全局环境安装的包 ( `-g` )

     # npm update -g packageName

注意：请记住全局安装的包需要管理员权限，除非使用 `prefix` 设置到用户可写目录。

##### 更新所有包

有时您只希望更新所有包，去掉包名将试图更新所有包。

     $ npm update

或者添加 `-g` 标记更新全局环境安装的包

     # npm update -g

#### 删除包

删除使用 `-g` 标记安装的包只须：

    # npm -g uninstall packageName

注意：请记住全局安装的包需要管理员权限

若删除个人用户目录下的包去掉标记执行：

     $ npm uninstall packageName

#### 列出所有包

若要显示已安装的包的树形视图执行：

    $ npm -g list

仅显示顶层树：

    $ npm list --depth=0

要显示需要更新的过期软件包：

    $ npm outdated

### 使用 pacman 管理包

一些 node.js 包可以在 Arch User Repository 找到，命名为 `nodejs-packageName` 格式。要向 AUR 中添加 node.js 软件包，请参考 Node.js 打包准则。

## 问题处理

### npm help 不显示文档

如果 `npm help topic` 没有显示 topic 的文档，请使用 `man npm-topic`。例如:

    $ npm help install
    Top hits for "install"
    ...
    $ man npm-install
    ... shows the documentation for the npm install subcommand

这是 Arch npm 软件包的一个 bug。

### node-gyp python 错误

如果出现 gyp WARN EACCES user "root" does not have permission to access the ... dir，可以使用 --unsafe-perm 选项:

    # npm install --unsafe-perm -g node-inspector

### 无法找到模块错误

从 npm 5.x.x. 开始，package-lock.json 会和 package.json 文件一起创建，如果两个文件引用了不同的版本，会出现冲突。临时解决方案是：

    $ rm package-lock.json
    $ npm install

nmp 5.1.0 或以上版本已经解决了此问题，请参考: missing dependencies

## 其他资源

更多关于 nodejs包 和官方包管理器 npm 的使用信息您也许需要查询下列额外资源。

- NodeJs Documentation Node 文档和教程。
- NodeJS Community
- API Documentation 官方 `npm` API 文档
- IRC channel #node.js on irc.libera.chat

中文社区

- v2ex NodeJS 节点开发者作品发布与开发探讨
- cnodejs.org Node.js 专业中文社区

分类：​

- 开发

Node.js
添加话题