node笔记

安装/卸载

安装查看这一篇文章《Node.js 安装配置》即可,包含了各种环境的安装。

推荐使用已经编译好的包,安装更简单

【注】在Ubuntu下使用apt-get安装的包不一定是最新稳定版本,可以通过下面的方式安装指定的node
  1. 执行curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -                           // 其中setup_6.x 需要安装的版本号,替换数字就行。
  2. 安装 nodejs,执行 sudo apt-get install nodejs

如果使用源码安装,可能需要做一些配置,比如在centOS下需要配置node的path环境变量。查看上面文章的centOS安装部分。例如

配置NODE_HOME,进入profile编辑环境变量

vim /etc/profile
设置 nodejs 环境变量,在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面添加如下内容:

#set for nodejs
export NODE_HOME=/usr/local/node/0.10.24
export PATH=$NODE_HOME/bin:$PATH
:wq保存并退出,编译/etc/profile 使配置生效

source /etc/profile

Windows卸载:

1. 如果有安装记录,否则直接到2步:

  控制面板-程序-程序和功能中卸载

2.直接删除安装文件

  查看安装路径:where <node|npm>

  C:Program Files (x86)Nodejs
  C:Program FilesNodejs
  C:UsersAdministratorAppDataRoaming pm
  C:UsersAdministratorAppDataRoaming pm-cache
  删除上述的几个文件夹  每个人可能不一样

3.删除环境变量PATH中的node/npm路径

  计算机(此电脑)-高级系统设置-环境变量-Path-删除node/npm环境变量路径

linux卸载:

1.删除软连接,如果是源码安装方式,直接到2

  rm -rf /usr/local/bin/node

  rm -rf /usr/local/bin/npm

2.删除源码(npm包含在node中,直接删除node即可)

  查看node安装路径:which <node|npm>,比如/opt/nodejs/node-v10.15.3-linux-x64/bin/node,其中红色部分就是node包路径

  rm -rf /opt/nodejs/node-v10.15.3-linux-x64

3.删除环境变量path配置中的node配置

  vi /etc/profile

  删除“export PATH=$PATH:/opt/nodejs/node-v10.15.3-linux-x64/bin”部分

后台运行

当node运行在服务器上的时候,使用终端控制node的运行,则需要使用到后台运行模式(避免终端关闭导致node停止运行),有多种方式

  • nohup

  这种方式最简单,linux自带命令,不用任何安装,运行单个node

nohup node /opt/xxx/index.js &
eixt // 必须通过exit来关闭shell终端,否则有些终端在手动点击关闭时会将终端启动的程序都关闭,详情:http://materliu.github.io/all/web/nodejs/2014/04/16/nodejs_serve_background_run.html
  • forever

  需要安装forever使用,官网:https://github.com/foreversd/forever#readme

npm install forever -g
service forever start
forever start app.js // 启动js
forever start -l forever.log -o out.log -e err.log app.js // 启动+日志
forever stop app.js // 停止js
forever restart app.js // 重启
  • PM2

  需要安装pm2,功能强大,官网:https://pm2.keymetrics.io/

npm install pm2 -g
pm2 start app.js //启动
pm2 start api.js -i <processes> // 多进程启动
pm2 stop     <app_name|namespace|id|'all'|json_conf>
pm2 restart  <app_name|namespace|id|'all'|json_conf>
pm2 delete   <app_name|namespace|id|'all'|json_conf>

 

 把 nohup和forever以及pm2放在一起说有些不恰当。后面两个功能主要时管理多node进程,down掉自动重启的。还有supervisor

  • supervisor 是开发环境用,。或者用nodemon,node-dev 代替了supervisor 和 nodemon,它和coffeescript兼容最好,文件更改后自动重启,开发时非常方便。
  • forever 管理多个站点,每个站访问量不大,不需要监控。
  • pm2 网站访问量比较大,需要完整的监控界面。pm2 stop *不会释放端口,要pm2 kill杀进程才释放端口,pm2的稳定性还是不错的。

踩坑

verbose lifecycle xxx: unsafe-perm in lifecycle true

报这个错误一般意味着程序崩掉了,大概率是因为内存不足,比如打包压缩js时很耗内存,内存耗完直接崩了。

解决办法:换一个好的环境或者去掉一些消耗内存的打包配置,比如,webpack --progress --colors --bail --profile,其中“--profile”和"--progress"都是比较耗内存的

原文地址:https://www.cnblogs.com/chuaWeb/p/12205653.html