@isaacs/克吕伊
叉子为 饼干完全通用的JS/ESM 混合型,所有依赖性都供货商和优化 最小捆绑大小而不牺牲功能 .
容易创建复杂的多列命令行界面.
V9 的变化
默认导出不再出口 。 所以,我们开始 import cliui from '@isaacs/cliui'你会做的 import { cliui } from '@isaacs/cliui'。这样做是为了尽量减少打字符
通用JS和无害环境管理版本之间的奇异之处.
提供精密导出于 @isaacs/cliui/min。如果是的话
担心捆绑的尺寸,这就是要使用的东西.
示例
import { cliui } from '@isaacs/cliui'
// or: const { cliui } = require('cliui')
const ui = cliui()
ui.div('Usage: $0 [command] [options]')
ui.div({
text: 'Options:',
padding: [2, 0, 1, 0],
})
ui.div(
{
text: '-f, --file',
width: 20,
padding: [0, 4, 0, 4],
},
{
text:
'the file to load.' +
chalk.green('(if this description is long it wraps).'),
width: 20,
},
{
text: chalk.red('[required]'),
align: 'right',
},
)
console.log(ui.toString())
Deno/ESM支助
从 unpkg 装入已修改版本 .
import { cliui } from 'https://unpkg.com/@isaacs/cliui/dist/esm/index.min.js'
const ui = cliui({})
ui.div('Usage: $0 [command] [options]')
ui.div({
text: 'Options:',
padding: [2, 0, 1, 0],
})
ui.div({
text: '-f, --file',
width: 20,
padding: [0, 4, 0, 4],
})
console.log(ui.toString())
布局 DSL
cliui 曝光一个简单的布局 DSL :
如果您创建了单曲 ui.div,通过字符串而不是
对象 :
\n:字符将被解释为新行.\t:字符将被解释为新的一栏.\s:字符将被解释为平板字.
作为一个例子...
var ui = require('./')({
width: 60,
})
ui.div(
'Usage: node ./bin/foo.js\n' +
' <regex>\t provide a regex\n' +
' <glob>\t provide a glob\t [required]',
)
console.log(ui.toString())
将输出 :
Usage: node ./bin/foo.js
<regex> provide a regex
<glob> provide a glob [required]
方法
cliui = require('@isaacs/cliui')
cliui( {width: 整数})
指定正在生成的 UI 的最大宽度 .
如果没有提供宽度, Cliui 将尝试获得当前窗口的宽度并使用它, 如果无法使用, 宽度将被设定为 80。 。 。 .
cliui ({ wrap: 布尔})
启用或禁用列中文字的包装.
cliui.div(栏,栏,栏)
创建一行,列数为任意,一列 可以是字符串,也可以是以下对象: 选项:
- 文本 : 一些要放入列中的文本.
- 宽度 : 列的宽度.
- 对齐 : 对齐,
right或者说center。 。 。 . - 页: 1
[top, right, bottom, left]。 。 。 . - 边框 : 是否应该放置一个边界 围绕地盘?
cliui.span (栏,栏,栏)
类似 div,但下一行将不附加
正在创建新行.
cliui.reset输出( )
重置当前 cliui 实例的 UI 元素, 维护值
设定 width 财务报告和审定财务报表 wrap。 。 。 .