基于日渐丰富的Node.js生态系统,在日常开发工作中我们不必再去开发一些已经存在的库和工具,充分利用好社区中已有的NPM包,将会为我们开发项目带来极大的便利。Node.js已经走过了11个年头,现如今我们真正的站在了巨人肩上,本文分享我在日常开发中所接触或使用过的一些较为好用的NPM包。

前端工程开发

babel

一个 JavaScript 编译器,前端开发必备良药。

postcss

一个用 JavaScript 工具和插件转换 CSS 代码的工具,前端开发必备良药

uglify-js

压缩JavaScript必备,前端开发必备良药

clean-css

CSS压缩工具

cssnano

一个基于 PostCSS 的 CSS 合并压缩工具。

csso

CSSO(CSS优化器)是一个CSS压缩工具。它执行三种类型的转换:

  • 清理(删除冗余)
  • 压缩(替换为较短的形式)
  • 重组(合并声明、规则集等等)

html-minifier

一个高度可配置的、经过良好测试的、基于JavaScript的HTML 压缩工具。

monaco-editor

Monaco Editor 是微软开源的基于 VS Code 的代码编辑器,运行在浏览器环境中。编辑器提供代码提示,智能建议等功能。可以跟codemirror之流的代码编辑器说再见了。

工具类

debug

调试工具,开发必备良药

glob

使用unix下shell所使用的模式来匹配文件

chokidar

对Node.js中fs.watch / fs.watchFile / FSEvents的一个封装,用来监听本地文件的修改变动。

commander

完整的 Node.js 命令行解决方案,灵感来自 Ruby 的 commander

minimist

轻量级的命令行参数解析引擎。对于完整命令行解决方案,用commander就好。

liftoff

也是一个命令行工具,可以方便的加载本地包来执行命令

osenv

查找基于不同操作系统的环境(变量)设置

dotenv

Dotenv是一个零依赖模块,它将环境变量从.env文件加载到process.env。将配置存储在独立于代码的环境中,基于The Twelve-Factor App这样一种规范。

chalk

终端字符样式工具

colors

同样是一个终端字符样式工具

color

用于不可变的颜色转换和操作,支持CSS颜色字符串

open

一个跨平台的,打开像URL,文件,可执行文件之类的工具

portfinder

在当前机器上查找可用开放端口的简单工具

mkdirp

unix shell下mkdir -p命令在Node.js中的实现

serialize-javascript

序列化 JavaScript 中包含正则表达式、日期和函数的JSON对象。

pako

pako是一个可以对内容进行压缩/解压的NPM包,它的主要代码借鉴zlib。(zlib在1995年发表,它的内部使用DEFLATE算法,而DEFLATE算法用到了Huffman算法和LZ77算法;每个语言都有zlib的实现,我们可以认为pako是zlib在js上的实现,pako中方法的参数都是参考zlib)。

lru-cache

LruCache采用的缓存算法为LRU(Least Recently Used),即最近最少使用算法。这一算法的核心思想是当缓存数据达到预设上限后,会优先淘汰近期最少使用的缓存对象。

打包工具

webpack

webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。

rollup

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序。

gulp

基于任务的前端自动化构建工具

grunt

一个基于任务的JavaScript工程命令行构建工具

Stream相关

through2

Node.js转换流的一个封装