npmjs包管理工具和nodejs版本管理

Node.js 简介

  • 免费开源跨平台
  • 服务器端 JavaScript 运行环境
  • 基于 Chrome V8 引擎,采用事件驱动非阻塞式 I/O模型

安装 Node.js

Windows

1
2
3
4
5
6
7
nvm --version           # 查看 nvm 版本
nvm list # 查看已安装的所有 Node.js 版本
nvm ls-remote # 查看服务器端所有可用 Node.js 版本
nvm install v15.1.0 # 安装指定版本 Node.js
nvm use v10.15.1 # 切换 Node.js 版本
nvm uninstall v10.15.1 # 卸载指定版本
nvm --help # 查看帮助

macOS / Linux

  • 推荐使用 Homebrew 安装 n 进行 Node.js 版本管理
1
2
3
4
5
brew install n          # 安装 n
sudo n lts # 安装最新 LTS 版本
sudo n latest # 安装最新版本
n ls # 查看已安装的 Node.js 版本
n rm <version> # 删除指定版本

npm 全局依赖位置修改

  • 查看全局依赖包路径:npm config get prefix
  • 设置全局依赖包路径:npm config set prefix "D:\nodejs\npm_global"
  • 查看缓存路径:npm config get cache
  • 设置缓存路径:npm config set cache "D:\nodejs\npm_cache"

包管理工具

npm

  • 安装 nrm(npm 源管理工具):npm i -g nrm
  • 查看可用源:nrm ls
  • 切换源(如淘宝):nrm use taobao

yarn

Node.js 后台运行

推荐使用 pm2 管理 Node.js 进程:

  • 全局安装:npm install -g pm2
  • 启动应用:pm2 start app.js
  • 查看进程列表:pm2 list
  • 停止/重启/删除进程:pm2 stop|restart|delete <id|name|all>
  • 查看日志:pm2 logs [--raw]
  • 清空日志:pm2 flush
  • 进程自启动(以 CentOS 为例):pm2 startup centos
  • 其它命令详见官方文档

注意:启动文件需加 .js 后缀,如 pm2 start server/add.js

Node.js 模块导入(import)

  • Node.js 原生支持 ES Module(import/export),但需注意以下事项:

    • 文件后缀需为 .mjs,或在 package.json 中设置 "type": "module"
    • import 时需写完整文件名,如:import '../utils.ejs'
    • Node.js 14 及以上可直接运行:node bin/index.mjs
    • 低于 14 版本需加参数:node --experimental-modules bin/index.mjs(会有实验性警告)
  • 获取当前执行文件路径及名称:

    • __dirname:当前文件所在目录
    • __filename:当前文件完整路径