这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战。
其实掌握前面两个模块已经基本上算是没啥问题了,下面再聊点其他实用的东西吧
1. chalk
chalk主要用于修改控制台中字符串的样式。比如根据当前状态展示不同颜色的字体,成功就用绿色,失败用红色,让你的信息展示更加优美
console.log(chalk.green('>>>> 开始打包 <<<<'));
2.util
util也是node的一个核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。
- util.format 快速格式化字符串
util.format('%s=%s','a','b','c') //a=b c
- util.inherits 实现对象原型继承
util.inherits(setName,sayName); //setName继承sayName
- util.promisify 快捷的把原来的异步回调方法改成返回 Promise 实例的方法
const exec = util.promisify(child_process.exec);
等等
3.fs
在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取和写入,在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法。通过这些甚至可以在打包时实现一些自定义的方法。给文件写入统一信息、注释等等
文件读取:readFileSync、readFile
文件写入: writeFileSync、writeFile
拷贝写入: copyFileSync、copyFile
创建文件:mkdirSync、mkdir
删除目录:rmdirSync、rmdir
删除文件:unlinkSync、unlink
...
4.semver
用以解决在大型项目中对依赖的版本失去控制的问题,通过自动获取当前package.json里的版本号,并通过semver提供的多个方法生成自己需要的版本号,并通过fs重新写入项目,实现版本号的自动化更新
const semverInc = require('semver/functions/inc');
const pkg = require('../package.json');
const version = pkg.version || '1.2.3'
const getNextVersions = () => ({
major: semverInc(version, 'major'), //2.0.0
minor: semverInc(version, 'minor'), //1.3.0
patch: semverInc(version, 'patch'), //1.2.4
premajor: semverInc(version, 'premajor'), //2.0.0-0
preminor: semverInc(version, 'preminor'), //1.3.0-0
prepatch: semverInc(version, 'prepatch'), //1.2.4-0
prerelease: semverInc(version, 'prerelease') //1.2.3-1
});