清单

  • chalk

    终端文字样式

  • env/env-expand

  • minimist

    格式化 node 命令中的参数,将其变成对象

    var argv = require('minimist')(process.argv.slice(2))
    console.log(argv)
    $ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
    { _: [ 'foo', 'bar', 'baz' ],
    x: 3,
    y: 4,
    n: 5,
    a: true,
    b: true,
    c: true,
    beep: 'boop' }
  • cross-env

    run scripts时设置和使用环境变量(跨平台)

  • commander

    commander.js 可以自动的解析命令和参数,合并多选项,处理短参,等等

  • inquirer

    inquirer 是一个快速开发交互命令行的 package

    注意:在 git hooks 中不会执行交互,查看

  • ora

    优雅的终端 loading 效果

  • execa

    一个更好的 child_process 管理工具

    提示:

    • 可以通过设置 option.stdio 为'inherit'来打印 log 信息
    • 设置 option.cwd 来设置命令运行的路径
  • fs-extra

    fs 的替代,并包含一些 fs 不支持的方法

  • npmlog

    npm 使用的 log 工具

  • camelcase

    将破折号/点/下划线/空格分隔的字符串转换为 camelCase 或 PascalCase:foo-bar→fooBar

  • decamelize

    Convert a camelized string into a lowercased one with a custom separator Example: unicornRainbow → unicorn_rainbow

  • download-git-repo

    下载一个 git 仓库

  • ejs

    嵌入式 js 模板

    官网

  • glob

    Match files using the patterns the shell uses

  • validate-npm-package-name

    判断 string 是否是有效的 npm 软件包名

  • ts-node

    node REPL 无法直接运行.ts 文件,必须先tsc编译成 js 之后。使用ts-node可以直接使用 ts 文件

  • ts-jest

    jest 使用babel配合 ts 使用。但 babel 只直接移植 ts 内容,jest 在测试时不会进行类型校验。使用ts-jest进行类型校验。

    详见:jest 使用 typescript

  • request-promise

    请求

  • request-progress

    请求进度

  • superagent

    请求库

  • tar

    适用于 Node.js 的快速且功能齐全的 Tar(解压缩)

  • please-upgrade-node

    根据 package.json 提示 node 版本是否需要更新

  • update-notifier

    cli 包版本更新提示

  • pretty-error

    更加可读的错误展示

  • rc

    获取 rc(run commands)配置文件

    The non-configurable configuration loader for lazy people.

  • cosmiconfig

    Cosmiconfig searches for and loads configuration for your program.

    prettier 读取配置项使用了该包。

  • mrm

    为你的项目生成 rc 配置文件

  • split-lines

    const splitLines = require('split-lines')
    splitLines('foo\r\nbar\r\nbaz\nrainbow')
    //=> ['foo', 'bar', 'baz', 'rainbow']
    splitLines('foo\r\nbar\r\nbaz\nrainbow', { preserveNewlines: true })
    //=> ['foo\r\n', 'bar\r\n', 'baz\n', 'rainbow']
  • smpltmp

    Simple templates for Node.js based on ECMAScript template literals syntax.

  • user-meta

    Read user name, email and URL from .npmrc or .gitconfig

  • parse-author

    Parse a string into an object with name, email and url properties following npm conventions. Useful for the authors property in package.json or for parsing an AUTHORS file into an array of authors objects.

  • boxen

    Create boxes in the terminal

  • npm-packlist

    获取 npm 包 publish 的文件

  • listr

    Terminal task list

    同时多个终端 spinner

  • resolve-from

    Resolve the path of a module like require.resolve() but from a given path

  • import-local

    优先使用本地的包,本地 node_modules 不存在再用全局的包

  • chokidar

    最小、最有效、跨平台的文件监听库