REPL 交互式解释器
- ctrl + c - 退出当前终端。
- ctrl + c 按下两次 - 退出 Node REPL。
- ctrl + d - 退出 Node REPL.
- 向上/向下 键 - 查看输入的历史命令
- tab 键 - 列出当前命令
- .help - 列出使用命令
- .break - 退出多行表达式
- .clear - 退出多行表达式
- .save filename - 保存当前的 Node REPL 会话到指定文件
- .load filename - 载入当前 Node REPL 会话的文件内容。
const repl = require('repl');
package.json
name名称。description简短描述。keywords关键字。version版本,主版本.次版本.补丁版本。repository仓库地址。author作者。contributors贡献者。license许可证。main入口点。private如果设置为true,则可以防止包被意外地发布到npm。scripts定义了一组可以运行的 node 脚本。dependencies生产依赖。devDependencies开发依赖。engines设置了此软件包/应用程序在哪个版本的 Node.js 上运行。browserslist用于告知要支持哪些浏览器(及其版本)
package-lock.json
该文件旨在跟踪被安装的每个软件包的确切版本,以便产品可以以相同的方式被 100% 复制(即使软件包的维护者更新了软件包)
npm 包管理器
# 全局安装
npm install -g lodash@1.2.0
# 查看全局安装的包的位置
npm root -g
# 安装到项目node_modules中
npm install -D lodash
# 安装到package.json文件中dependencies(生产)
--save 或 -S 或 不给参数默认生产依赖
# 安装到package.json文件中devDependencies(开发)
--save-dev 或 -D
# 安装所有包(没有包名参数,默认安装所有开发依赖)
npm install
# 安装所有生产依赖
npm install --production
# 查看所有已安装的包
npm list
# 查看所有已安装全局的包
npm list -g
# 查看已安装包和它依赖包的版本
npm list cowsay
# 查看包在npm仓库最新版本
npm view cowsay version
# 查看所有包的新版本
npm outdated
# 全部包更新到最新版本,依赖npm-check-updates包
npm install -g npm-check-updates
ncu -u
npm update
# 卸载包,并删除package.json的开发依赖项
npm uninstall -D cowsay
npx 包运行器
npx @vue/cli create my-vue-app
npx create-react-app my-react-app
# 也可以运行GitHub上的代码
npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
几种常见模块化规范
- AMD规范,浏览器环境中异步加载模块,而且可以并行加载多个模块。
- CMD规范,与AMD规范很相似,都用于浏览器编程,依赖就近,延迟执行。
- CommonJS规范,加载模块是
同步的,不适合浏览器环境,同步意味着阻塞。 - ES6,动态引用,如果使用import从一个模块加载变量,那些变量
不会缓存,而是成为一个指向被加载模块的引用,impor/export最终都是编译为require/exports来执行的
事件循环
NodeJS使用事件驱动模型。
调用堆栈是一个LIFO队列(后进先出)消息队列(事件、定时器等的回调函数会放入消息队列)ES6作业队列(Promise、async/await,在调用堆栈后消息队列前)
- 所有
同步任务都在主线程上执行,形成一个执行栈 - 当主线程中的执行栈为
空时,检查消息队列是否为空,如果为空,则继续检查;如不为空,则执行3 - 取出消息队列的首部,加入执行栈
- 执行任务
- 检查执行栈,如果执行栈为空,则跳回第 2 步;如不为空,则继续检查
global 全局变量
类似于浏览器的window
各种模块使用
查阅API文档
-
express.js Express - 基于 Node.js 平台的 web 应用开发框架 - Express 中文文档www.expressjs.com.cn/
-
koa (基于node.js的web开发框架) Koa (koajs) -- 基于 Node.js 平台的下一代 web 开发框架koa.bootcss.com/