庫 | 做用 |
---|---|
chalk-pipe | 使用更簡單的樣式字符串建立粉筆樣式方案 |
chalk | 正確處理終端字符串樣式 |
Commander.js | 完整的 node.js 命令行解決方案 |
Inquirer.js | 一組通用的交互式命令行用戶界面。 |
slash | 系統路徑符處理 |
minimist | 解析參數選項 |
dotenv | 將環境變量從 .env文件加載到process.env中 |
dotenv-expand | 擴展計算機上已經存在的環境變量 |
hash-sum | 很是快的惟一哈希生成器 |
deepmerge | 深度合併兩個或多個對象的可枚舉屬性。 |
yaml-front-matter | 解析yaml或json |
resolve | 實現node的 require.resolve() 算法,這樣就能夠異步和同步地使用require.resolve()表明文件 |
semver | npm的語義版本器 |
leven | 測量兩字符串之間的差別<br/>最快的JS實現之一 |
lru cache | 刪除最近最少使用的項的緩存對象 |
portfinder | 自動尋找 8000 至65535 內可用端口號 |
ora | 優雅的終端轉輪 |
envinfo | 生成故障排除軟件問題(如操做系統、二進制版本、瀏覽器、已安裝語言等)時所需的通用詳細信息的報告 |
memfs | 內存文件系統與Node's fs API相同實現 |
execa | 針對人類的流程執行 |
webpack-merge | 用於鏈接數組和合並對象,從而建立一個新對象 |
webpack-chain | 使用鏈式API去生成簡化webpack版本配置的修改 |
strip-ansi | 從字符串中去掉ANSI轉義碼 |
address | 獲取當前機器的IP, MAC和DNS服務器。 |
default-gateway | 經過對OS路由接口的exec調用得到機器的默認網關 |
joi | JavaScript最強大的模式描述語言和數據驗證器。 |
fs-extra | 添加了未包含在原生fs 模塊中的文件系統方法,並向fs 方法添加了promise支持 |
Acorn | 一個小而快速的JavaScript解析器,徹底用JavaScript編寫。 |
zlib.js | ZLIB.js是ZLIB(RFC1950), DEFLATE(RFC1951), GZIP(RFC1952)和PKZIP在JavaScript實現。 |
nodejs交互工具庫 -- chalk-pipe和chalknode
nodejs交互工具庫 -- commander和Inquirerlinux
nodejs交互工具庫 -- slash, minimist和dotenv, dotenv-expandwebpack
nodejs交互工具庫 -- hash-sum, deepmerge和yaml-front-mattergit
nodejs交互工具庫 -- resolve和semvergithub
nodejs交互工具庫 -- leven, lru cache和portfinderweb
nodejs交互工具庫 -- webpack-merge和webpack-chainjson
nodejs交互工具庫 -- strip-ansi, address, default-gateway和joisegmentfault
nodejs交互工具庫 -- fs-extra, Acorn和zlib
從字符串中去掉ANSI轉義碼
$ npm install strip-ansi
const stripAnsi = require('strip-ansi'); stripAnsi('\u001B[4mUnicorn\u001B[0m'); //=> 'Unicorn' stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); //=> 'Click'
可做爲Tidelift訂閱的一部分
strip-ansi和數千個其餘包的維護人員正在與Tidelift合做,爲用於構建應用程序的開源依賴項提供商業支持和維護.節省時間、下降風險並改善代碼的運行情況,同時向您所使用的依賴項的維護者支付費用Learn more.
基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔
獲取當前機器的IP, MAC和DNS服務器。
DNS服務器接收/etc/resolv.conf
。
$ npm install address
Get IP是同步的,Get MAC如今是異步的
var address = require('address'); // default interface 'eth' on linux, 'en' on osx. address.ip(); // '192.168.0.2' address.ipv6(); // 'fe80::7aca:39ff:feb0:e67d' address.mac(function (err, addr) { console.log(addr); // '78:ca:39:b0:e6:7d' }); // local loopback address.ip('lo'); // '127.0.0.1' // vboxnet MAC address.mac('vboxnet', function (err, addr) { console.log(addr); // '0a:00:27:00:00:00' });
address(function (err, addrs) { console.log(addrs.ip, addrs.ipv6, addrs.mac); // '192.168.0.2', 'fe80::7aca:39ff:feb0:e67d', '78:ca:39:b0:e6:7d' }); address('vboxnet', function (err, addrs) { console.log(addrs.ip, addrs.ipv6, addrs.mac); // '192.168.56.1', null, '0a:00:27:00:00:00' });
address.interface('IPv4', 'eth1'); // { address: '192.168.1.1', family: 'IPv4', mac: '78:ca:39:b0:e6:7d' }
address.dns(function (err, addrs) { console.log(addrs); // ['10.13.2.1', '10.13.2.6'] });
run $ npm run benchmark
18,929 op/s » #ip 17,622 op/s » #ipv6 16,347 op/s » #mac 11,906 op/s » #dns
基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔
經過對OS路由接口的exec調用得到機器的默認網關。
$ npm i default-gateway
const defaultGateway = require('default-gateway'); const {gateway, interface} = await defaultGateway.v4(); // gateway = '1.2.3.4', interface = 'en1' const {gateway, interface} = await defaultGateway.v6(); // gateway = '2001:db8::1', interface = 'en2' const {gateway, interface} = defaultGateway.v4.sync(); // gateway = '1.2.3.4', interface = 'en1' const {gateway, interface} = defaultGateway.v6.sync(); // gateway = '2001:db8::1', interface = 'en2'
Returns: result
Object
gateway
: 默認網關的IP地址interface
: 接口的名稱。在Windows上,這是網絡適配器名稱.v{4,6}()
方法返回Promise而 .v{4,6}.sync()
變體會同步返回結果
網關屬性將老是在成功時定義,而接口若是不能肯定,則能夠爲null。全部方法都在乎外狀況下拒絕/拋出。
基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔
JavaScript最強大的模式描述語言和數據驗證器。
npm install joi
訪問 joi.dev 門戶獲取教程、文檔和支持
const Joi = require('joi') // 聲明類型 const schema = Joi.object({ a: Joi.number() }); // 驗證數據 const string = { a: '123' }; const number = { a: 123 }; const boleean = { a: true }; // 驗證結果 const result1 = schema.validate(string) const result2 = schema.validate(number) const result3 = schema.validate(boleean) console.log(result1, result2, result3) /* { value: { a: 123 } } { value: { a: 123 } } { value: { a: true }, error: [Error [ValidationError]: "a" must be a number] { _original: { a: true }, details: [ [Object] ] } } */
基本經常使用的方法場景就這些了,更完整的用法能夠直接查閱文檔