网站首页 > 技术文章 正文
下面按照这个图来实现准备阶段
检查版本号
通过package.json来拿到version
'use strict';
module.exports = core;
const pkg = require('../package.json')
function core() {
checkPkgVersion()
}
function checkPkgVersion(){
console.log(pkg.version)
}
这里有个知识点:
知识点
require可以加载所有后缀的文件,但是除了 .json和.node文件,都以js文件内容处理
.js => module.exports / exports
.json => JSON.parse
log模块
我们来实现根据环境变量打印log的级别,支持debug模式
我们使用npm第三方库 npmlog来实现
接下来看下npmlog的源码
npmlog的源码
log.addLevel('silly', -Infinity, { inverse: true }, 'sill')
log.addLevel('verbose', 1000, { fg: 'cyan', bg: 'black' }, 'verb')
log.addLevel('info', 2000, { fg: 'green' })
log.addLevel('timing', 2500, { fg: 'green', bg: 'black' })
log.addLevel('http', 3000, { fg: 'green', bg: 'black' })
log.addLevel('notice', 3500, { fg: 'cyan', bg: 'black' })
log.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN')
log.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!')
log.addLevel('silent', Infinity)
从源码可以看到通过addLevel来增加不同的log,第二个参数代表log的级别,debug模式就是verbose,级别也就是1000
接下来通过npmlog来定制log
通过npmlog定制log
自定义log,来实现success日志打印
下面分别定义和使用:
// 定义
const log = require('npmlog')
log.addLevel('success',2000,{fg:'green',bold:true})
// 使用
const log = require('@rd-cli-dev/log')
log.success('test', 'success...')
调整npmlog level
从npmlog源码中可以看出,默认的级别是info,也就是2000
// default level
log.level = 'info' // 默认是info
// 默认level是2000,大于2000才会生效
log.addLevel('info', 2000, { fg: 'green' })
level小于2000,不会生效,这时需要将level调整为verbose时候,变成debug模式,需要根据环境变量调整
log.addLevel('verbose', 1000, { fg: 'cyan', bg: 'black' }, 'verb')
通过上面的讲解,我们来定制下log包
封装和使用log模块
// src/utils/log/lib/index.js
// 封装
'use strict';
const log = require('npmlog')
log.level = process.env.LOG_LEVEL ? process.env.LOG_LEVEL: 'info';// 判断debug模式
log.heading = 'rd-cli-dev' // 修改前缀
log.addLevel('success',2000,{fg:'green',bold:true}) // 添加自定义命令
module.exports = log;
// src/core/cli/lib/index.js
// 使用
'use strict';
module.exports = core;
const pkg = require('../package.json')
const log = require('@rd-cli-dev/log')
function core() {
checkPkgVersion()
}
function checkPkgVersion(){
log.info('cli', pkg.version)
}
log的效果
- 上一篇: 构建自己的前端脚手架下载器笔记
- 下一篇: 前端开发react框架 - 搭建脚手架
猜你喜欢
- 2025-05-26 Wee – 为现代 Web 开发打造的 CSS 脚手架
- 2025-05-26 中建工地高颜值的“秘诀”:盘扣式外架+定型化网片
- 2025-05-26 你没见过的新型花篮外架技术更快捷更方便,值得推广
- 2025-05-26 图解:盘扣式脚手架搭建步骤
- 2025-05-26 收藏!2022最新工字钢悬挑脚手架做法和规范,萌新必看
- 2025-05-26 「架构师必备」基于SpringCloud的SaaS型微服务脚手架
- 2025-05-26 使用 Vue 脚手架,为什么要学 webpack?(一)
- 2025-05-26 新型梁侧预埋式外脚手架连墙件施工工艺和流程
- 2025-05-26 SpringBoot+LayUI后台管理系统开发脚手架
- 2025-05-26 推荐一款超棒的SpringCloud 脚手架项目
你 发表评论:
欢迎- 611℃几个Oracle空值处理函数 oracle处理null值的函数
- 603℃Oracle分析函数之Lag和Lead()使用
- 592℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 589℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 583℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 576℃【数据统计分析】详解Oracle分组函数之CUBE
- 566℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 558℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)