npm包之mz-modules
2019-09-30 本文已影响0人
黑曼巴yk
前言
作用和mz类似,但是mz包装的是核心的Nodejs的API,mz-modules包装的是一些社区流行的模块
使用
const mkdirp = require('mz-modules').mkdirp;
// 或者下面引用方式
const mkdirp = require('mz-modules/mkdirp');
模块
-
mz-modules/mkdirp
包裹的是 mkdirp -
mz-modules/rimraf
包裹的是rimraf -
mz-modules/glob
wrapped glob -
mz-modules/sleep
wrapped ko-sleep -
mz-modules/nextTick
wrapped process.nextTick -
mz-modules/setImmediate
wrapped setImmediate -
mz-modules/pump
wrapped pump
mkdir
在Nodejs中像mkdir -p
一样实现递归的mkdir
const mkdirp = require('mkdirp');
mkdirp('/tmp/foo/bar/baz', err => {
if(err) {
console.log(err);
}
})
rimraf
在Nodejs中使用rm -rf
一样实现删除
API
rimraf(f, [opts], callback)
- 第一个参数是glob通配符模式
- 回调函数第一个参数是error,系统默认处理了以下错误
- ENOENT: 如果文件不存在,rimraf将成功返回。
- EMFILE: 在异步情况下,rimraf会逐渐超时,直到opts.emfileWait ms超时为止,默认值为1000。
glob
使用 **
等匹配模式来匹配文件。当在命令中执行ls *.js
之类的东西时或者将build/*
放在.gitignore文件中时候。就是glob的匹配模式
glob("**/*.js", options, function (er, files) {
})
pump
pump解决了什么问题?
当使用标准的source.pipe(dest)
,如果dest出现了error,source不会被销毁,而且你无法提供一个回调当pipe被销毁了。pump就是解决上面的两个问题的
使用
var pump = require('pump')
var fs = require('fs')
var source = fs.createReadStream('/dev/random')
var dest = fs.createWriteStream('/dev/null')
pump(source, dest, function(err) {
console.log('pipe finished', err)
})
setTimeout(function() {
dest.destroy() // when dest is closed pump will destroy source
}, 1000)