Docker 打包本地 Web 项目发布到服务端

一、Docker 入门

构建镜像

docker build -t <image-name> .

阅读全文

Ffmpeg 抽取视频音轨

看 youtube 上有些视频的音乐很好听,就想抽出来当自己的歌单,懒得去用市面上的软件,觉得麻烦,想到了 ffmpeg。 mac 可以用 homebrew 下载,过程比较烦,每次装都要更新,更新很久才开始下载,于是切了清华源,快一点。

安装好 ffmpeg 之后要抽离音轨就很简单了

阅读全文

晨跑

国庆的第一天跟李先森跑去体验公司的酒店了,看电影打游戏,还发现了一本不错的书,村上村树的《当我谈跑步时,我谈些什么》。这本书主要讲的是村上村树在跑步过程中的一些感想,没有花很大的文笔去写跑步带来诸如健康之类的有点,而是侧重写一些回忆,一些故事,感觉挺有趣的,当晚看完一章我就立刻下单了这本书。

阅读全文

校验字符串是否有意义

项目中有一个表单,初始化根据服务端返回的数据渲染,服务端返回的是一个对象,有些字段的值为 ‘NULL’ 这种形式的,渲染出来没什么意义,一般都会转换为空。这种形式的字符串布尔值是 false,而且是对象的值,不好一键转换,这里就需要写一个函数去做校验了。这里我写了个简单的转换函数如下:

export function checkVal(val) {
const isSense = checkStr => {
if (typeof checkStr !== 'string') {
return checkStr;
}
const noSense = ['null', 'undefinded'];
const str = checkStr.toLowerCase();
return noSense.includes(str) ? '' : checkStr;
};
const isObject = value => {
const type = typeof value;
return value != null && (type === 'object' || type === 'function');
};
if (isObject(val)) {
const keys = Object.keys(val);
let newVal = Object.create(null);
keys.forEach(el => {
newVal[el] = isSense(val[el]);
});
return newVal;
}
isSense(val);
}

阅读全文

Ant-Design-Vue 那些坑

最近项目中用到了 ant-design-vue,对于内部系统来说,ant 的风格是比较好的,但是组件的使用比较难自定义,这是我个人一个比较深的感受吧,下面记录一下使用中遇到的一些坑。

dropdown 组件的 menu 默认会被添加到 body 元素上,使用默认的设置,在列表中会出现点击之后失去焦点位置偏移的问题,解决这个问题的方法是设置一个 menu 的容器

阅读全文

Vue 你这是怎么了

一、对象初始化

早上例行体验一下在做的项目,看看有什么问题。发现编辑界面上周还好好的,这周打开就报错了,还关不掉弹窗那种,不进发问,Vue 你这是怎么啦?上周还运行的好好的。报错如下:

阅读全文

KPI vs OKR

新加入的团队引入了 KPI 制度,上周开了个会说这周我们要出 KPI。开完会有点懵,这个概念大学的时候上管理学的课程有讲过,不过只是知道大概的概念,其他都还给老师了。同事让我周末想一下自己的 KPI,我也不知道要想啥,我当时就觉得说明我做了啥就行了。周一对 KPI,我只给了两点,同事说我这个太简单,请教了同事和经历过 KPI 制度的同学,说这个要写的复杂点,高大上一点,多点。于是我就从两条扩展到了 9 条,又拿给同事和同学看,同学说可以,挺具体的,就是主旨不是很明确,太散,同事说条目太多了。接着我又收窄了一点,合并成了五条,同学说作为 KPI 差不多了,以他们 OKR 制度的角度看还是差一点,没有明确的的结果和数据说明。

阅读全文

关于广告拦截插件的一些思考

阮一峰在上周的周刊中提到他的网站因为广告拦截器的原因,导致有读者看不到页面的部分内容,并且找到了相应的针对他的个人网站的拦截规则集。

这里个人认为一点点可有可无的广告对于读者而言也没有多大的影响,何况这只是周刊中的一些文字广告,相比某些网站的链接,弹框等影响阅读体验的广告好多了。最让我觉得不可思议的是广告拦截软件的权限竟然这么高,甚至可以禁止 js 脚本的执行,这是让人觉得很不可思议的,要知道前端的交互全靠 js,没了 js 就会回到远古网页的时代,哪有什么体验可言,这对于网站开发者来说真的是好不尊重了。

阅读全文

nodeJs 模块机制

在讲模块机制之前,先来说说 CommonJs 规范,我们知道在打包的时候经常会看到 cjs 这个选项,这里的 cjs,我自己之前是一直以为就是commonJs,实际上这是 node 对 CommonJs 的实现,是 node 的模块机制。

ComonJs 规范范围除了模块规范之外,还有二进制、Buffer、字符集编码、I/O 流、进程环境、文件系统、套接字、单元测试、Web 服务器网关接口以及包管理等规范。

阅读全文

离开页面弹窗

最近有个需求,要求在部署过程中离开界面与用户有一个交互,询问用户是否离开页面,然后还给出了相应的样式让我实现。我寻思着关闭窗口,意味着页面销毁,执行栈都不存在了,何谈交互呢?于是我果断的拒绝了这个需求,并评论道无法实现。

后来跟同事交流了一下,同事说之前遇到过类似的需求,有相应的回调函数可以做到,去 mdn 找了下,还真有,但是很遗憾,不能自定义样式,而且在不同的浏览器可能表现不一致。跟产品沟通了下,说明了这种情况,能接受,就加上了。

阅读全文