来自 Arch Linux 中文维基

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

安装

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

多版本需求

如果需要使用多个 nodejs 版本,可以使用 NVM (Node Version Manager)。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 的使用信息您也许需要查询下列额外资源。

中文社区