一、nodemon
自動(dòng)監(jiān)視文件變更鸥跟,并自動(dòng)重啟項(xiàng)目.
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') + '\'回車以手動(dòng)重啟進(jìn)程');
})
;
二揽惹、tiny-async-pool
可指定同時(shí)進(jìn)行多少個(gè)異步
操作。
例如: 我們需要同步第三方平臺(tái)的1萬(wàn)個(gè)商品的價(jià)格秸弛,肯定不能for
循環(huán)去調(diào)用铭若,Promise.all()
也不合適,此時(shí)就可以用到這個(gè)包递览,我們可以指定一次同時(shí)查詢10個(gè)商品的信息叼屠,執(zhí)行完這一輪,再執(zhí)行下一輪绞铃,直到這1萬(wàn)個(gè)商品都查詢完畢镜雨。
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音樂播放器