commonjs迁移至esm规范小记

nodejs 由于历史原因,由社区推动的commonjs规范在esmodule未推出时解决了js模块化的问题,随着esX在近几年的发展,静态导入导出的优势对编译友好等,使得esmodule规范越来越流行,越来越多的库宣布在未来只支持纯ESM导出,使得很多项目不得不迁移,这里记录一下我自己的迁移过程和学习记录(主要涉及到typescript、node、webpack组合项目迁移思路)。 场景与迁移方 ……

私人Docker Registry搭建指南

在以前使用docker镜像的构建上传过程中一直都是使用的export DECKSER_HOST的方式,但由于暴露了2375端口之后,任何人无需认证即可上传镜像和运行容器,并且挂载宿主机的文件到容器内部,十分危险,docker官方也不推荐这么做,所以我以前的做法是暴露到非2375端口如10086之类的,虽然减少了黑产扫描到的概率,但依然存在很大的风险,但是docker hub能免费使用的私人仓库限制 ……

Github Actions workflow使用记录

由于自己的服务器普遍配置较低,在jenkins构建时会出现内存溢出的情况,这样的直接后果就是jenkins直接跪掉重启,项目构建失败。 对于普通的小项目,似乎够用,但是我有个项目,包含大约500MB静态图片,需要通过img-loader的几个插件进行图片压缩,压缩过程十分占用内存和cpu,使得服务器压力过大,于是在码云仓库爆仓(大于500MB)之际,我打算将仓库转移到github,并且jenkin ……

webpack 学习记录 (二)

本篇文章以Fishing Funds的v3分支到v4分支的改造过程,进一步学习webpack Fishing Funds 在v4版本以前均基于electron-react-boilerplate 当时时间节点的最新master分支开发,electron-react-boilerplate 作为一个React + Electron + Typescript的模版仓库,是一个非常优秀的开源项目,但是看 ……

Linux下 WebHook + Jenkins Pipline + Docker 实现web自动化容器部署

步骤一 安装jenkins 采用docker拉取jenkins官方最新镜像 创建Jenkins容器,这里推荐docker-compose创建, docker-compose.yml如下 如果没有配nginx,ports中直接设置为 将jenkins主目录挂在到宿主机的/home/jenkins-home(自己能记住就行) 由于我们即将部署的web项目是采用docker部署,所以将宿主机中的dock ……

Nuxt + ElementUI Vue项目代码精简、压缩 记录

最近参与一个使用Nuxt+element-ui构建的Vue项目,由于要做SEO所以部分页面采用ssr(server side render) 这个项目本身最重要的就是首页展示,但是由于部分业务逻辑涉及到表单再加上布局方便,所以引入了ElementUI,这导致了整个项目异常臃肿,再加上ElementUi自带的slider组件不支持移动端的滑动,所以我又引入了第三方轮播组件Swiper,这两个库占用了 ……

理解Object.defineProperty和ES6 proxy对象

最近在学习mobX的时候,探究了一下其实现机制,发现最神奇的莫过于,其中使用@observable装饰的变量的改变可以触发autorun的回调,使用了观察者模式和发布/订阅模式很类似,而这种模式反应在javascript对象上的本质就是Object.defineProperty,在很多框架中的数据双向流绑定也是这样实现的,比如Vue