Better

Ethan的博客,欢迎访问交流

Node安装与应用开发工具

在 Linux 环境下 Node 的安装,以及开发和发布 Node 应用的常用工具的使用

yum

直接执行 yum 命令

yum install nodejs npm

但是实践发现一个问题,就是通过上述命令安装的 node 版本太低,如果运行报错,比如提示...表达式不支持等,需要更新 node 版本,可以通过 n 进行更新:

安装Node版本管理工具:n

npm install –g n latest
# 升级到最新稳定版本
n stable
# 指定版本
n v5.5.0

版本选择: 输入n后输出当前已经安装的node版本以及正在使用的版本(前面有一个o),你可以通过移动上下方向键来选择要使用的版本,最后按回车生效。

使用n(node版本管理器)安装node之后,并没有生效!

原因:你的node的安装目录和 n 默认的路径不一样。查看 node 当前安装路径:

# 查看正在使用node的安装路径
which node

而 n 默认安装路径是 /usr/local,若你的 node 不是在此路径下,n 切换版本就不能把bin、lib、include、share 复制该路径中,所以我们必须通过 N_PREFIX 变量来修改 n 的默认node安装路径。

vim ~/.bash_profile
# node实际安装位置
export N_PREFIX=/usr/local 
export PATH=$N_PREFIX/bin:$PATH
# 保存退出
:wq

$ source ~/.bash_profile执行source使修改生效。

echo $N_PREFIX 确认一下环境变量是否生效:

删除版本:n rm version

特殊使用:n use 0.10.21 app.js

n模块的原理理解很重要:你下载的node默认位于(可以通过N_PREFIX设置前缀路径)/usr/local/n/versions/node/x.xx.x中,那么为什么n可以如此轻松的切换版本呢,如果版本已经下载完毕,直接找到源文件复制到/usr/local对应的文件中,否则下载再移动,因此在配置node的环境变量时,直接配置到N_PREFIX/bin即可!

编译安装

下载安装包,解压编译安装

tar -xzvf node-v6.9.1.tar.gz
cd node-v6.9.1
./configure
make
make install

开发工具

直接使用 node 启动应用,在开发过程中我们每次更改都需要重新启动,非常麻烦,这里推荐两个工具,效果其实都是一样的,监控代码的代码,自动重启

supervisor

  • 功能:监视你对代码的改动,并自动重启 Node.js,服务器宕机时自动重启。
  • 安装:npm -g install supervisor
  • 启动:supervisor --harmony index

nodemon

  • 功能:监视你对代码的改动,并自动重启 Node.js,服务器宕机时自动重启。
  • 安装:npm -g install nodemon
  • 启动:nodemon index

个人倾向于用第二个,因为单词容易记一点,哈哈

发布工具

在线上发布时,使用 node 启动应用,必须保持窗口活跃,这显然是不现实的,这里同样推荐两个常用工具

forever

  • 功能:后台运行node应用,Node.js 下的生产环境进程管理工具,就是我们常说的进程守护工具,可以用来在生产环境中进行自动重启、日志记录、错误预警等等
  • 区别:supervisor一般在开发的时候使用,因为可以检测代码改动自动重启,但是断掉 SSH 连接后服务就终止了,需要使用pm2或者forever来启动应用。
  • 安装:npm install forever –g
  • 常用命令:
    1.forever start app.js简单的启动
    2.forever start -l forever.log app.js指定forever信息输出文件,当然,默认它会放到~/.forever/forever.log
    3.forever start -o out.log -e err.log app.js -o 就是console.log输出的信息,-e 就是console.error输出的信息
    4.forever start -w app.js监听当前文件夹下的所有文件改动(不太建议这样)
    5.forever list显示所有运行的服务
    6.forever stopall停止所有运行的node App
    7.forever stop app.js停止其中一个node App
    8.forever stop [id] forever list 找到对应的id
    9.forever restartall启动所有
    10.forever restart app.js 重启应用(和forever start的区别就是日志文件不会新建)
    

pm2

  • 功能:pm2 是一个带有负载均衡功能的Node应用的进程管理器。
  • 看如下 pm2 的基本命令,感觉好强啊
  • 基本命令
$ pm2 start app.js              # 启动app.js应用程序
$ pm2 start app.js -i 4         # cluster mode 模式启动4个app.js的应用实例     # 4个应用程序会自动进行负载均衡
$ pm2 start app.js --name="api" # 启动应用程序并命名为 "api"
$ pm2 start app.js --watch      # 当文件变化时自动重启应用
$ pm2 start script.sh           # 启动 bash 脚本

$ pm2 list                      # 列表 PM2 启动的所有的应用程序
$ pm2 monit                     # 显示每个应用程序的CPU和内存占用情况
$ pm2 show [app-name]           # 显示应用程序的所有信息

$ pm2 logs                      # 显示所有应用程序的日志
$ pm2 logs [app-name]           # 显示指定应用程序的日志

$ pm2 stop all                  # 停止所有的应用程序
$ pm2 stop 0                    # 停止 id为 0的指定应用程序
$ pm2 restart all               # 重启所有应用
$ pm2 reload all                # 重启 cluster mode下的所有应用
$ pm2 gracefulReload all        # Graceful reload all apps in cluster mode
$ pm2 delete all                # 关闭并删除所有应用
$ pm2 delete 0                  # 删除指定应用 id 0
$ pm2 scale api 10              # 把名字叫api的应用扩展到10个实例
$ pm2 reset [app-name]          # 重置重启数量
···


留言