Node.js (简体中文)

From ArchWiki
翻译状态:本文是 Node.js翻译。上次翻译日期:2020-05-08。如果英文版本有所更改,则您可以帮助同步翻译。

Node.js 是一个 javascript 运行环境,并附带有功能丰富的库.使用 Google's V8 引擎 在浏览器外执行代码. 由于其是事件驱动、非阻塞 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> 参数避免安装系统提供的版本。

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,要解决这个问题,需要安装 python2并在 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 的使用信息您也许需要查询下列额外资源。

中文社区