Node.js (简体中文) - ArchWiki

Jump to content

本文或本节需要翻译。要贡献翻译，请访问简体中文翻译团队。

附注： Not updated for a while, still references python2.（在 Talk:Node.js (简体中文)# 中讨论）
翻译状态：本文是 Node.js 的翻译。上次翻译日期：2020-05-08。如果英文版本有所更改，则您可以帮助同步翻译。

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

## 安装

安装 软件包 nodejs。还可以安装长期支持版本:

- nodejs-lts-erbium[损坏的链接：package not found] - 12.X
- nodejs-lts-dubnium[损坏的链接：package not found] - 10.X

### 多版本需求

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

将下面命令加入 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)

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

## 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` 。添加下列行到您的 shell 配置文件 (e.g. `.bash_profile`)。

    ~/.profile

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

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

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

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

#### 更新包

更新包只需要执行

     $ 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` 格式。

## 问题处理

### node-gyp python 错误

有些使用 `node-gyp` 的工具不支持系统上的 Python 3，要解决这个问题，需要安装 python2AUR并在 nvm 中设置:

    $ npm config set python /usr/bin/python2

如果出现 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 专业中文社区

Category:

- Development (简体中文)

Hidden categories:

- Pages or sections flagged with Template:Translateme (简体中文)
- Pages with broken package links