Node.js
Node.js 是一个 JavaScript 运行时环境,结合了有用的 库。 Node.js 使用 Google V8 引擎 在 web 浏览器 之外执行代码。由于其事件驱动、非阻塞 I/O 模型,它适用于实时 Web 应用程序。
安装
安装 nodejs 软件包。也有 长期支持 (LTS) 版本
- nodejs-lts-jod—版本 22.x
- nodejs-lts-iron—版本 20.x
Node 版本管理器
通常需要或希望使用不同版本的 Node.js。 Node.js 用户首选的方法是使用 Node 版本管理器 (nvmAUR),它允许廉价且轻松的替代安装。 您可以通过将其添加到您的 命令行 shell#配置文件 中来设置 nvm
. /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)
nodejs-fake
软件包,但现在已被删除。 建议的方法是使用 --assume-installed nodejs=<version>
,根据手册 pacman(8) § TRANSACTION OPTIONS (APPLY TO -S, -R AND -U)。如果您想在目录中有 .nvmrc
文件时每次都自动运行 nvm use
,请在 shell 初始化文件 中添加 这个。
Node 包管理器
npm 是 Node.js 的官方包管理器。 可以使用 npm 软件包安装。
使用 npm 管理软件包
安装软件包
可以使用以下命令安装任何软件包
$ npm install packageName
此命令将软件包安装在当前目录的 node_modules
下,并将可执行文件安装在 node_modules/.bin
下。
对于系统范围的安装,可以使用全局开关 -g
# npm -g install packageName
默认情况下,此命令将软件包安装在 /usr/lib/node_modules/npm
下,并且需要 root 权限才能执行此操作。(如果使用像 umask 0077
这样的安全 umask,您将需要为软件包设置 宽松的 sudo umask 才能使用。)
允许用户级安装
要允许当前用户的全局软件包安装,请设置 npm_config_prefix
环境变量。 npm 和 yarn 都会使用它。
~/.profile
PATH="$HOME/.local/bin:$PATH" export npm_config_prefix="$HOME/.local"
重新登录或 source 以更新更改。
bin
和 lib
目录将自动在您的前缀目录中创建。您还可以为 npm install
指定 --prefix
参数。 但是,不 建议这样做,因为您每次安装全局软件包时都需要添加它。
$ npm -g install packageName --prefix ~/.local
另一种选择是在 $HOME/.npmrc
中设置 prefix
字段。 这实现了与在 .profile
中使用 npm_config_prefix="$HOME/.local"
相同的效果
$ npm set prefix="$HOME/.local"
更新软件包
更新软件包非常简单,如下所示
$ npm update packageName
对于全局安装的软件包 (-g
) 的情况
# npm update -g packageName
prefix
设置为用户可写目录,否则全局安装的软件包需要管理员权限更新所有软件包
但是,有时您可能只想更新所有软件包,无论是本地还是全局。 省略 packageName npm
将尝试更新所有软件包
$ 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 用户仓库 (AUR) 中找到,名称为 nodejs-package_name
。
有关为 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 软件包的 一个错误。
node-gyp 错误
如果出现类似 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
但是,在 npm 5.1.0 或更高版本之后进行了修复。 有关更多信息,请参阅: 缺少依赖项
参见
- Node.js 文档
- npm 文档
- IRC 频道 #node.js 在 Libera Chat 上