1
A
回答
1
NPM是如何爲他們創造更新消息的邊界?
NPM使用npmlog
打印到控制檯,npmlog
利用console-control-strings
& gauge
。
console-control-strings
大多提供方便的功能,用於移動繞線光標和着色文本。gauge
提供了進度條和微調以及樣式。
哪些字符使用和它看起來同在所有平臺上?
Unicode box-drawing characters用於邊框字符。我沒有研究NPM使用的確切unicode字符。假設終端/平臺被實現爲支持unicode,並且不會覆蓋具有自己的字符(即emojis)的標準字符集,我不明白它爲什麼在平臺上看起來不一樣。
下面的片段unicode字符不完全匹配。相反,它演示瞭如何使用control-control-strings
打印接近NPM輸出的東西。我肯定有足夠的修補,你可以確切地說。
const control = require('console-control-strings')
let title = `${control.color('cyan')}Update available 5.0.3 \u2192 5.0.4${control.color('reset')}`
let subtitle = `Run ${control.color('cyan')} npm i -g npm ${control.color('reset')}`
let borderWidth = (title.length > subtitle.length ? title.length : subtitle.length)
let topLeftCorner = '\u256D'
let topRightCorner = '\u256E'
let btmRightCorner = '\u256F'
let btmLeftCorner = '\u2570'
let border = [...Array(borderWidth)].map(() => { return '\u2500' }).join('')
let topBorder = `${control.nextLine()}${control.color('yellow')}${topLeftCorner}${border}${topRightCorner}${control.color('reset')}`
let btmBorder = `${control.nextLine()}${control.color('yellow')}${btmLeftCorner}${border}${btmRightCorner}${control.color('reset')}`
let lineWrapper = `${control.color('yellow')}\u2502${control.color('reset')}`
console.log(topBorder)
console.log(`${lineWrapper}${control.forward(borderWidth)}${lineWrapper}`)
console.log(`${control.nextLine()}${lineWrapper}${control.forward(4)}${title}${control.forward(5)}${lineWrapper}`)
console.log(`${lineWrapper}${control.forward(11)}${subtitle}${control.forward(10)}${lineWrapper}`)
console.log(`${lineWrapper}${control.forward(borderWidth)}${lineWrapper}`)
console.log(`${btmBorder}${control.color('reset')}`)
相關問題
- 1. 什麼是消息邊界?
- 2. 消除NPM「更新」信息
- 3. node.js上的消息邊界如何?
- 4. 如何終止邊界消息
- 5. 如何爲Joomla擴展程序創建消息「更新可用」?
- 6. 爲UIImageView創建邊界框
- 7. NServiceBus消息處理創建/更新
- 8. Pygame:創建邊界
- 9. 如何爲消息創建新的驗證規則? (Codeigniter)
- 10. 最新消息創建RenderTarget2D
- 11. 如何爲Jmeter創建更詳細的結果消息Junit Sampler
- 12. 如何創建dbus消息?
- 13. 如何創建APDU消息
- 14. 如何在Sprite Kit中創建邊界
- 15. 如何從精靈創建邊界(AndEngine)
- 16. 如何在AS3中創建邊界
- 17. 如何阻止js創建邊界來影響其他元素?
- 18. http請求消息的邊界
- 19. 如何爲表格創建連續的邊界線?
- 20. 如何在長度爲2列的行之間創建邊界?
- 21. 如何在Minecraft中創建縮小的世界邊界
- 22. 如何在查看消息旁邊創建收件箱
- 23. 未創建CCTouch邊界框
- 24. 給定MIME消息的文本表示,如何重新創建消息?
- 25. 如何創建SOAP消息?如何將肥皂消息轉換爲對象?
- 26. RabbitMQ - 可選創建其他消息?
- 27. 如何使UITableViewCell的邊界消失?
- 28. 如何爲div創建一個css邊界
- 29. 如何爲npm模塊創建聲明?
- 30. 如何爲反應創建npm包
感謝您的回答,這是真的深入。 – Brad