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
新增話題