# JS Node.js

# Node.js 是什么?

Node.js 是一个开源与跨平台的 JavaScript 运行时环境,它在浏览器外运行一个 V8 JavaScript 引擎

# 常用 NPM 包介绍

lodash - 常用工具函数集合 moment - date format 日期格式化 dayjs - date format 日期格式化

  • 命令行

chalk - 终端字符串美化
kolorist - 终端美化
commander- 命令行参数处理工具

  • 请求库 request - HTTP Client
    axios - HTTP Client
    cheerio - jQuery 服务端实现 常用于爬虫

  • Web API 框架 express - web server 框架 koa - web server 框架 @nestjs/cli - web server 脚手架

cropperjs - image cropper

# node-gyp

node-pre-gyp 和 node-gyp。他们究竟是什么呢?

node-gyp 是一个跨平台的命令行工具,用于编译 C++编写的 nodejs 扩展,首先 gyp 是为 Chromium 项目创建的项目生成工具,可以从平台无关的配置生成平台相关的 Visual Studio、Xcode、Makefile 的项目文件,node-gyp 就是将其集成到 nodejs 中。

因为 linux 的二进制分发快平台做的并不好,所有 npm 为了方便干脆就直接源码分发,用户装的时候再现场编译。不过对有些项目二进制分发就比源码分发简单多了,所以还有个 node-pre-gyp 来直接二进制扩展的分发。

两者区别在于 node-gyp 是发布扩展的源码,然后安装时候编译;node-pre-gyp 是直接发布编译后的二级制形式的扩展。