一、nodemon
自动监视文件变更,并自动重启项目.
var nodemon = require('nodemon');
nodemon({
script: './server',
ignore: ['webroot/*', '*.test.*', 'tests/*', '*.spec.*', 'resources/*', 'bootstrap/*', 'webpack.config.js'],
watch: ['./server/']
});
nodemon
.on('start', function () {
console.info('Main process started. watching...');
})
.on('crash', function () {
console.info('Main process crashed.');
})
.on('quit', function () {
process.exit();
})
.on('restart', function (files) {
if (files) {
files = files.map(function (file) {
var _file = path.relative(cwd, file);
return _file.indexOf('..') === 0 ? file : _file;
});
if (files.length) files = files[0];
}
console.info({changed: files}, 'Main process is going to restart...');
})
.on('config:update', function (config) {
config = config || {};
var options = config.options || {};
console.info('Nodemon configured.');
console.info('输入`' + (options.restartable || 'rs') + '\'回车以手动重启进程');
})
;
二、tiny-async-pool
可指定同时进行多少个异步
操作。
例如: 我们需要同步第三方平台的1万个商品的价格,肯定不能for
循环去调用,Promise.all()
也不合适,此时就可以用到这个包,我们可以指定一次同时查询10个商品的信息,执行完这一轮,再执行下一轮,直到这1万个商品都查询完毕。
const asyncPool = require('tiny-async-pool');
const timeout = ms => new Promise(resolve => { setTimeout(() => resolve(ms), ms); });
const arr = [1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000];
async function a() {
for await (const ms of asyncPool(3, arr, timeout)) {
console.log( ms);
}
}
a();
三、dplayer
一款功能丰富的H5视频播放组件
四、aplayer
漂亮的H5音乐播放器