Node.js是什么? JS是个基于浏览器的解释型脚本语言,通俗的来说就是:JS只能在浏览器里运行,因为浏览器里有个JS引擎负责解释运行JS代码,当然浏览器里还有负责对html,css负责解析绘制的引擎。而node.js是一个基于Chrome浏览器 V8(js)引擎的运行环境,能够使得javascript脱离浏览器运行。
Node.js能做什么? 在前端开发里一般是用来执行编译CSS预编译语言、预编译、压缩、混淆JS、压缩图片、reload、deploy等工程化任务,常用的平台有Grunt和Gulp,现在主流就是用来跑npm
npm是什么? npm,Node Package Manager,基于Node.js的包管理器
Node.js和npm的版本对应关系 Node下载 (opens new window)
# 使用版本管理器来安装 Nodejs 和 NPM
因为 Nodejs 和 NPM 的各版本间可能存在差异较大,所以推荐做法是使用版本管理器来安装 Nodejs 和 NPM,方便以后在开发过程中各版本间的切换。 npm 中文文档 (opens new window)中列明了各操作系统推荐使用的版本管理器。windows 下推荐使用 nvm-windows (opens new window)进行安装。
nvm-windows 安装
到Github nvm-windows 下载 (opens new window)页,提供了 setup 和 noinstall 两种安装方式。下载最新的 setup 安装包,安装很简单,过程中,360会有警告,直接放行即可。 如果使用 noinstall 的方式安装,参考nodejs 在 windows 下的安装配置(使用NVM的方式) (opens new window)。
配置环境变量,例如下:- NVM_HOME:D:\Program\nvm
- NVM_SYMLINK:D:\Program\nodejs
注意:安装路径不要带空格,建议是纯字母的路径
nvm-windows 命令
命令 说明 nvm 显示 nvm 的所有命令说明 nvm v 查看当前 nvm 版本,如需更新 nvm 的版本,直接下载最新的安装包,安装覆盖当前安装的路径即可,已安装的 Nodejs 不受影响 nvm install latest 安装最新版本的 Nodejs nvm install <version> 安装指定版本的 Nodejs,如:nvm install 8.10.0,即安装 Nodejs 8.10.0 版本 nvm list 显示当前已经安装的 Nodejs 版本 nvm use <version> 使用指定版本的 Nodejs,该命令可以方便的切换到不同的版本,如:nvm use 8.10.0,即使用 Nodejs 8.10.0 版本 nvm uninstall <version> 卸载指定版本的 Nodejs,如:nvm uninstall 9.7.1,即卸载 Nodejs 9.7.1 版本 推荐安装指定版本:偶数版本为稳定版本。从 Node.js 官网 (opens new window) 获取最新的版本号。
- LTS:为上一个稳定版本;
- Current:为当前稳定版本;
# 淘宝镜像
# 方式一
npm install -g cnpm --registry=https://registry.npmmirror.com
或者直接用以下命令进行安装
npm install --registry=https://registry.npmmirror.com
使用
cnpm install
# 方式二
更换成淘宝的源
npm config set registry https://registry.npmmirror.com
配置后可通过下面方式来验证是否成功
npm config get registry
使用
npm install
# 依赖更新
- 安装全局插件 npm-check-updates
cnpm install -g npm-check-updates
- 在 package.json 执行 ncu 命令查看可更新依赖
- 执行 ncu -u 更新 package.json 中的版本
- 执行 cnpm install 更新包
# 更新全局依赖
cnpm update -g
# pm2
介绍
pm2是一个进程管理工具,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护,负载均衡等功能
安装
pm2 需要全局安装
npm install -g pm2
命令
进入项目根目录执行命令
描述 命令 启动进程/应用 pm2 start bin/www 或 pm2 start app.js 重命名进程/应用 pm2 start app.js --name wb123 添加进程/应用 watch pm2 start bin/www --watch 结束进程/应用 pm2 stop www 结束所有进程/应用 pm2 stop all 删除进程/应用 pm2 delete www 删除所有进程/应用 pm2 delete all 列出所有进程/应用 pm2 list 查看某个进程/应用具体情况 pm2 describe www 查看进程/应用的资源消耗情况 pm2 monit 查看pm2的日志 pm2 logs 若要查看某个进程/应用的日志,使用 pm2 logs www 重新启动进程/应用 pm2 restart www 重新启动所有进程/应用 pm2 restart all
# 问题
# cnpm.ps1,因为在此系统上禁止运行脚本
解决方法:
- 以管理员身份运行PowerShell
- 输入set-ExecutionPolicy RemoteSigned
- 输入A回车
问题解决
# 查看所有全局安装的包
npm list --depth=0 -global
# nrm
开发的npm registry 管理工具 nrm, 能够查看和切换当前使用的registry。
# 安装
npm install -g nrm
# 参考
- Node.js 中文网:http://nodejs.cn/
- 一键更新package.json中所有模块为最新版本:https://www.jianshu.com/p/ce9a46ae3a03
- PM2 实用入门指南:https://imweb.io/topic/57c8cbb27f226f687b365636
- PM2 官网:https://pm2.keymetrics.io/docs/usage/quick-start/
- nrm是什么?以及nrm的安装与命令:https://blog.csdn.net/liangtaox8/article/details/100022107
# 乱
# Node.js
查看Node.js的安装版本
node -v
# npm相关
查看npm的安装版本
npm -v
更新到最新版npm
npm install npm@last -g
# npm的模块相关
# 初始化
npm init // 会初始化一个简单的package.json,执行完命令行会依次询问name, version, description 等字段
npm init -y|--yes // 作用同上,不过不会询问那些字段
# 安装模块
安装package.json的所有模块
npm install
在当前项目安装vuepress模块
npm install vuepress
安装指定版本的包
npm install vuepress@1.9.7
安装最新版本的包
npm install vuepress@latest
全局安装模块
npm install -g vuepress
npm install vuepress --save
npm install vuepress --save-dev
# 更新模块
更新模块到最新版本
update vuepress@latest
检查当前文件夹下的包版本,会列出Package(包名)、Current(当前版本)、Wanted(建议的版本)、Latest(最新版本)、Location(所属的项目名)
npm outdated
更新模块到指定版本
方法1:npm update vuepress@1.9.7
方法2:先在package.json中修改vuepress的版本号,再运行npm update vuepress
更新全局安装的包
npm update -g vuepress
更新全局安装的所有包
npm update -g
# 查看模块
查看全局安装的模块在哪个文件夹下
npm config edit
后会自动打开.npmrc文件,里面的prefix=安装目录
查看当前项目安装了哪些模块
npm list|ls|ll --depth=0 // package.json文件夹下运行
查看全局安装了哪些模块
npm list|ls|ll --depth=0 -g
查看模块的安装版本
npm info vuepress version
# 删除模块
删除模块
npm uninstall vuepress
删除全局安装的模块
npm uninstall -g vuepress
从package.json文件中删除依赖
npm uninstall --save vuepress
# dependencies和devDependencies区别
都是package.json里面的节点 --save-dev:将保存配置信息到package.json的devDependencies节点中。 dependencies:运行时的依赖,发布后使用,生产环境下需要用的模块(生产)。 devDependencies:开发时的依赖,开发时测试环境下使用,发布时用不到它(测试)。
# --save和--save-dev和-g的区别
--save 或 -S:将模块写入dependencies节点,运行npm install时会将模块下载到当前node_modules目录下 --save-dev 或 -D:将模块写入devDependencies节点,不会写入dependencies节点,运行npm install时会将模块下载到当前node_modules目录下 -g:安装模块到全局的node_modules目录下,不会修改package.json文件,所以运行npm install时不会将模块下载到当前node_modules目录下
# npm audit fix
检测项目依赖中的漏洞并自动安装需要更新的有漏洞的依赖,而不必再自己进行跟踪和修复
# 全局安装的位置
C:\Users\VAQ\AppData\Roaming\npm\node_modules\cnpm\node_modules