Difference between revisions of "Node.js (简体中文)"

From ArchWiki
Jump to navigation Jump to search
m
(→‎问题处理: Update translation.)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
[[Category:Development (简体中文)]]
 
[[Category:Development (简体中文)]]
 
[[en:Node.js]]
 
[[en:Node.js]]
{{TranslationStatus (简体中文)|Node.js|2014-08-11|329864}}
+
[[ja:Node.js]]
{{Translateme (简体中文)}}
+
{{TranslationStatus (简体中文)|Node.js|2019-01-14|424348}}
[http://nodejs.org/ Node.js] 是一个 javascript 运行环境,并附带有常用的库.
+
[http://nodejs.org/ Node.js] 是一个 javascript 运行环境,并附带有功能丰富的库.使用 [https://code.google.com/p/v8/ Google's V8 引擎] 在浏览器外执行代码.
它使用了 [https://code.google.com/p/v8/ Google's V8 引擎] 在浏览器外执行代码.
 
 
由于其是事件驱动、非阻塞 I/O 模型,它适合于实时 web 应用.
 
由于其是事件驱动、非阻塞 I/O 模型,它适合于实时 web 应用.
  
 
== 安装 ==
 
== 安装 ==
  
{{Pkg|nodejs}} 包位于 [[official repositories|官方软件仓库 ]].
+
[[安装]] 软件包 {{Pkg|nodejs}}
 +
 
 +
=== 多版本需求 ===
 +
如果需要使用多个 {{Pkg|nodejs}} 版本,可以使用 [https://github.com/creationix/nvm NVM] (Node Version Manger). {{AUR|nvm}} 可以很方便的安装多个版本,并在版本间快速切换。命令很简单:
 +
 
 +
将下面命令加入 shell 的启动文件:
 +
# Set up Node Version Manager
 +
source /usr/share/nvm/init-nvm.sh
 +
 
 +
如果需要使用自定义的 nvm 目录:
 +
 
 +
# Set up Node Version Manager
 +
export NVM_DIR="$HOME/.nvm"                            # You can change this if you want.
 +
export NVM_SOURCE="/usr/share/nvm"                    # The AUR package installs it to here.
 +
[ -s "$NVM_SOURCE/nvm.sh" ] && . "$NVM_SOURCE/nvm.sh"  # Load NVM
 +
 
 +
项目的 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)
 +
 
 +
使用 {{AUR|nvm}} 时,可以用 [https://www.archlinux.org/pacman/pacman.8.html#_transaction_options_apply_to_em_s_em_em_r_em_and_em_u_em|pacman] 的 {{ic|1=--assume-installed nodejs=<version>}} 参数避免安装系统提供的版本。
  
 
== Node Packaged Modules ==
 
== Node Packaged Modules ==
  
[https://www.npmjs.org/ npm] 是官方的 node.js 包管理器,已包含在 {{Pkg|nodejs}} 中.
+
[https://www.npmjs.org/ npm] 是官方的 node.js 包管理器,通过软件包 {{Pkg|npm}} 进行安装。
  
 
=== 使用 npm 管理包 ===
 
=== 使用 npm 管理包 ===
Line 29: Line 53:
 
  # npm -g install packageName
 
  # npm -g install packageName
  
默认情形下这个命令会将包安装至 {{ ic | /usr/lib/node_modules/npm }},需要管理员权限.
+
默认情形下这个命令会将包安装至 {{ic|/usr/lib/node_modules/npm}},需要管理员权限.
  
For a user-wide installation you can configure {{ ic | npm }} to use a local folder instead.
+
作为个人用户级的安装您可以使用一个本地目录来配置 {{ ic | npm }} 。添加下列行到您的 shell 配置文件 (e.g. {{ic|.bash_profile}})。
This can be done in various ways:
 
  
* Manually with the {{ ic | --prefix }} command line flag (e.g. {{ ic | npm -g install packageName --prefix ~/.node_modules }}).
+
PATH="$HOME/.node_modules/bin:$PATH"
* Using the {{ ic | npm_config_prefix }} environment variable.
+
export npm_config_prefix=~/.node_modules
* Using a user config file {{ ic | ~/.npmrc }}.
+
 
 +
不要忘记重新登录或读取新配置。
 +
 
 +
也可以在 {{ic|npm install}} 时指定 {{ic|--prefix}} 参数,但是不建议使用这个方式,因为需要每次安装全局软件包时都记得使用此参数。
 +
 
 +
$ npm -g install packageName --prefix ~/.node_modules
  
First method is not recommended since you need to remember the location and give it as the parameter each time you do an operation.
+
==== 更新包 ====
  
For the second method simply add the following lines to your shell configuration file (e.g. {{ ic | .bash_profile }}).
+
更新包只需要执行
 +
 
 +
  $ npm update packageName
  
PATH=$PATH:~/.node_modules/bin
+
对于全局环境安装的包 ( {{ic | -g}} )
export npm_config_prefix=~/.node_modules
 
  
Do not forget to log out and log back in or restart your shell accordingly.
+
  # npm update -g packageName
  
For the third method you can use the command:
+
{{Note|请记住全局安装的包需要管理员权限}}
  
$ npm config edit
+
===== 更新所有包 =====
  
You can then find the {{ ic | prefix }} option and set a desired location:
+
有时您只希望更新所有包,去掉包名将试图更新所有包。
  
prefix=~/.node_modules
+
  $ npm update
  
Do not forget to delete the preceding {{ ic|; }} on the line or it will be read as a comment.
+
或者添加 {{ic | -g}} 标记更新全局环境安装的包
You can now add the location of your executables to your shell configuration file (e.g. {{ ic | .bash_profile }}).
 
  
PATH=$PATH:~/.node_modules/bin
+
  # npm update -g
  
Again do not forget to log out and log back in or restart your shell accordingly.
+
==== 删除包 ====
  
==== Updating packages ====
+
删除使用 {{ ic | -g }} 标记安装的包只须:
  
Updating packages is as simple as
+
# npm -g uninstall packageName
  
  $ npm update packageName
+
{{Note|请记住全局安装的包需要管理员权限}}
  
For the case of globally installed packages ( {{ic | -g}} )
+
若删除个人用户目录下的包去掉标记执行:
  
   # npm update -g packageName
+
   $ npm uninstall packageName
  
{{Note|Remember that globally installed packages require administrator privileges}}
+
==== 列出所有包 ====
  
===== Updating All Packages =====
+
若要显示已安装的包的树形视图执行:
  
However, sometimes you may just wish to update all packages. Be it locally or globally. Leaving off the packageName {{ ic | npm }} will attempt to update all the packages
+
$ npm -g list
  
  $ npm update
+
仅显示顶层树:
  
or add the {{ic | -g}} flag to update globally installed packages
+
$ npm list --depth=0
  
  # npm update -g
+
要显示需要更新的过期软件包:
  
==== Removing packages ====
+
$ npm outdated
  
To remove a package installed with the {{ ic | -g }} switch simply use:
+
=== 使用 pacman 管理包 ===
  
# npm -g uninstall packageName
+
一些 node.js 包可以在 [[Arch User Repository]] 找到,命名为 {{ ic | nodejs-packageName }} 格式。
  
{{Note|Remember that globally installed packages require administrator privileges}}
+
== 问题处理 ==
  
to remove a local package drop the switch and run:
+
=== node-gyp python 错误 ===
  
  $ npm uninstall packageName
+
有些使用 {{ic|node-gyp}} 的工具不支持系统上的 Python 3,要解决这个问题,需要安装 {{Pkg|python2}}并在 nvm 中设置:
 +
 +
$ npm config set python /usr/bin/python2
  
==== Listing packages ====
+
如果出现 '''gyp WARN EACCES user "root" does not have permission to access the ... dir''',可以使用 ''--unsafe-perm'' 选项:
  
To show a tree view of the installed packages use:
+
# npm install --unsafe-perm -g node-inspector
  
# npm -g list
+
=== 无法找到模块错误 ===
  
=== Managing packages with pacman ===
+
从 npm 5.x.x. 开始,package-lock.json 会和 package.json 文件一起创建,如果两个文件引用了不同的版本,会出现冲突。临时解决方案是:
 +
$ rm package-lock.json
 +
$ npm install
  
Some node.js packages can be found in [[ Arch User Repository ]] with the name {{ ic | nodejs-packageName }}.
+
nmp 5.1.0 或以上版本已经解决了此问题,请参考:
 +
[https://github.com/npm/npm/pull/17508 missing dependencies]
  
== Additional Resources ==
+
== 其他资源 ==
  
For further information on {{ Pkg | nodejs }} and use of its official package manager [https://www.npmjs.org/ npm] you may wish to consult the following external resources
+
更多关于 {{Pkg|nodejs}} 和官方包管理器 [https://www.npmjs.org/ npm] 的使用信息您也许需要查询下列额外资源。
  
* [http://nodejs.org/documentation/ NodeJs Documentation] Documentation and Tutorials for Node
+
* [http://nodejs.org/documentation/ NodeJs Documentation] Node 文档和教程。
* [http://nodejs.org/community/ NodeJS Community] Webpage
+
* [http://nodejs.org/community/ NodeJS Community]  
* [https://www.npmjs.org/doc/ API Documentation] Official {{ ic | npm }} API documentation
+
* [https://www.npmjs.org/doc/ API Documentation] 官方 {{ ic | npm }} API 文档
 
* IRC channel #node.js on irc.freenode.net
 
* IRC channel #node.js on irc.freenode.net
 +
 +
中文社区
 +
* [https://www.v2ex.com/go/nodejs v2ex NodeJS 节点] 开发者作品发布与开发探讨
 +
* [http://cnodejs.org/ cnodejs.org] Node.js 专业中文社区

Latest revision as of 07:33, 14 January 2019

翻译状态: 本文是英文页面 Node.js翻译,最后翻译时间:2019-01-14,点击这里可以查看翻译后英文页面的改动。

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

如果需要使用自定义的 nvm 目录:

# Set up Node Version Manager
export NVM_DIR="$HOME/.nvm"                            # You can change this if you want.
export NVM_SOURCE="/usr/share/nvm"                     # The AUR package installs it to here.
[ -s "$NVM_SOURCE/nvm.sh" ] && . "$NVM_SOURCE/nvm.sh"  # Load NVM

项目的 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 时,可以用 [1]--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)。

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
Note: 请记住全局安装的包需要管理员权限
更新所有包

有时您只希望更新所有包,去掉包名将试图更新所有包。

 $ npm update

或者添加 -g 标记更新全局环境安装的包

 # npm update -g

删除包

删除使用 -g 标记安装的包只须:

# npm -g uninstall packageName
Note: 请记住全局安装的包需要管理员权限

若删除个人用户目录下的包去掉标记执行:

 $ 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 的使用信息您也许需要查询下列额外资源。

中文社区