出自 Arch Linux 中文维基

Node.js 是一個 javascript 運行環境,並附帶有功能豐富的庫.使用 Google's V8 引擎 在瀏覽器外執行代碼。 由於 Node.js 是事件驅動、非阻塞 I/O,非常適合於實時 web 應用。

安裝

安裝 nodejs。還可以安裝長期支持版本:

多版本需求

如果需要使用多個 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> 參數避免安裝系統提供的版本。

如果希望在目錄存在 .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 的使用信息您也許需要查詢下列額外資源。

中文社區