Node.js 是一个 javascript 运行环境,并附带有功能丰富的库.使用 Google's V8 引擎 在浏览器外执行代码。 由于 Node.js 是事件驱动、非阻塞 I/O,非常适合于实时 web 应用。
安装
- nodejs-lts-hydrogen包 - 18.X
- nodejs-lts-iron包 - 20.X
多版本需求
如果需要使用多个 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 的使用信息您也许需要查询下列额外资源。
- NodeJs Documentation Node 文档和教程。
- NodeJS Community
-
API Documentation 官方
npm
API 文档 - IRC channel #node.js on irc.libera.chat
中文社区
- v2ex NodeJS 节点 开发者作品发布与开发探讨
- cnodejs.org Node.js 专业中文社区