读完时间:2020 年 7 月 6 日
出版时间:2017 年 5 月
"读书笔记:《10人以下小团队管理手册》 – [日]堀之内克彦 著 / 程雨枫 译"继续阅读
Promise
Promise
的前世今生Promise
最早出现在 1988 年,由 Barbara Liskov、Liuba Shrira 首创(论文:Promises: Linguistic Support for Efficient Asynchronous Procedure Calls in Distributed Systems)。并且在语言 MultiLisp 和 Concurrent Prolog 中已经有了类似的实现。
JavaScript 中,Promise
的流行是得益于 jQuery 的方法 jQuery.Deferred()
,其他也有一些更精简独立的 Promise
库,例如:Q、When、Bluebird。
"讲讲 Promise/实战"继续阅读
这一天网站突然打不开报 MySQL 连接错误,上服务器后发现 MySQL 已经停止服务,各种启动无效。经历了一系列搜索和无效的工作后,去云服务上后台看监控,发现硬盘满了。于是得出结论硬盘空间不足会导致 MySQL 服务停止。
切到根目录下使用 du -sh *
查看各目录的占用情况,发现 /root/.pm2
在捣鬼。
20K dump.pm2 16K dump.pm2.bak 33G logs 4.0K module_conf.json 4.0K modules 8.0K pids 16G pm2.log 4.0K pm2.pid 0 pub.sock 0 reload.lock 0 rpc.sock 4.0K touch
于是先删除日志文件,启动 MySQL 服务即可。
rm -rf logs/* rm -rf pm2.log service mysqld start
查看错误日志发现 Node 服务的某个模块不存在...
npm install --save-dev gulp gulp-cli
gulpfile.js
定义 Gulp 任务,从而使用 gulp ${taskName}
来运行他。
# npm pkg npm install --save-dev gulp-uglify # gulpfile.js const gulp = require('gulp'); const uglify = require('gulp-uglify'); gulp.task('build', function () { return gulp .src('./src/index.js') .pipe(uglify()) .pipe(gulp.dest('lib')); }); # >_ npx gulp build
gulp.task()
定义任务名字。gulp.src()
方法存放源文件(本例 ./src/index.js
),如果要处理多个文件要写成数组形式:gulp.src(['1.js', '2.js'])
。通过管道 .pipe()
内的方法进行处理这些文件,最后通过 gulp.dest()
保存修改过的文件。
"使用 Gulp 快速打包项目"继续阅读
peerDependencies
peerDependencies
存在于 NPM 的 package.json
中,如果项目中依赖模块 X、模块 Y,模块 Y 又依赖模块 X,当模块 X 出现版本冲突的时候,则会打包出 X 的两份代码。在这个模块 Y 里面使用 peerDependencies
引入模块 X,这样当前项目和模块 Y 便会共用这个模块 X。
当在 peerDependencies
引入一个模块后:
node_modules
中,什么也不提示。node_modules
中,警告用户缺少此模块,但是不自动安装。注意: npm i
并不会自动安装 peerDependencies
里的模块,所以开发模块的需要在 devDependencies
同步添加相应模块。
peerDependencies
"使用 peerDependencies 缩减项目体积"继续阅读
requestIdleCallback
?requestIdleCallback
接收回调函数,在浏览器的空闲时段调用,这样既不阻塞关键性事件,又能保证低优任务的时效性。
requestIdleCallback
可以像使用 setTimeout
一样使用 requestIdleCallback
,区别是 requestIdleCallback
中的回调函数可以接收当前剩余空闲时间,以便合理利用这段时间来处理队列任务。一般会在回调函数内再次调用 requestIdleCallback
,以便在下次空闲时间段继续执行剩余的任务。
"使用 requestIdleCallback 优化埋点数据上报"继续阅读
git branch -d <BranchName>
git push origin --delete <BranchName>