commonjs迁移至esm规范小记
nodejs 由于历史原因,由社区推动的commonjs规范在esmodule未推出时解决了js模块化的问题,随着esX在近几年的发展,静态导入导出的优势对编译友好等,使得esmodule规范越来越流行,越来越多的库宣布在未来只支持纯ESM导出,使得很多项目不得不迁移,这里记录一下我自己的迁移过程和学习记录(主要涉及到typescript、node、webpack组合项目迁移思路)。 场景与迁移方 ……
nodejs 由于历史原因,由社区推动的commonjs规范在esmodule未推出时解决了js模块化的问题,随着esX在近几年的发展,静态导入导出的优势对编译友好等,使得esmodule规范越来越流行,越来越多的库宣布在未来只支持纯ESM导出,使得很多项目不得不迁移,这里记录一下我自己的迁移过程和学习记录(主要涉及到typescript、node、webpack组合项目迁移思路)。 场景与迁移方 ……
在以前使用docker镜像的构建上传过程中一直都是使用的export DECKSER_HOST的方式,但由于暴露了2375端口之后,任何人无需认证即可上传镜像和运行容器,并且挂载宿主机的文件到容器内部,十分危险,docker官方也不推荐这么做,所以我以前的做法是暴露到非2375端口如10086之类的,虽然减少了黑产扫描到的概率,但依然存在很大的风险,但是docker hub能免费使用的私人仓库限制 ……
由于自己的服务器普遍配置较低,在jenkins构建时会出现内存溢出的情况,这样的直接后果就是jenkins直接跪掉重启,项目构建失败。 对于普通的小项目,似乎够用,但是我有个项目,包含大约500MB静态图片,需要通过img-loader的几个插件进行图片压缩,压缩过程十分占用内存和cpu,使得服务器压力过大,于是在码云仓库爆仓(大于500MB)之际,我打算将仓库转移到github,并且jenkin ……
本篇文章以Fishing Funds的v3分支到v4分支的改造过程,进一步学习webpack Fishing Funds 在v4版本以前均基于electron-react-boilerplate 当时时间节点的最新master分支开发,electron-react-boilerplate 作为一个React + Electron + Typescript的模版仓库,是一个非常优秀的开源项目,但是看 ……
步骤一 安装jenkins 采用docker拉取jenkins官方最新镜像 创建Jenkins容器,这里推荐docker-compose创建, docker-compose.yml如下 如果没有配nginx,ports中直接设置为 将jenkins主目录挂在到宿主机的/home/jenkins-home(自己能记住就行) 由于我们即将部署的web项目是采用docker部署,所以将宿主机中的dock ……
参照相关文档,在package.json中配置electron-builder的基础打包设置: “build”: { “productName”: “Fishing Funds”, “appId”: “com.electron.1zilc.fishing-funds”, “copyright”: “Copyright © 2021 1zilc”, “files”: [ “dist/”, “node ……
最近参与一个使用Nuxt+element-ui构建的Vue项目,由于要做SEO所以部分页面采用ssr(server side render) 这个项目本身最重要的就是首页展示,但是由于部分业务逻辑涉及到表单再加上布局方便,所以引入了ElementUI,这导致了整个项目异常臃肿,再加上ElementUi自带的slider组件不支持移动端的滑动,所以我又引入了第三方轮播组件Swiper,这两个库占用了 ……
const obj = observable({ a: “a”, b: “b” }) autorun(() => { console.log(obj.a) }) obj.b = “1” // 不触发回调 obj.a = “2” // 触发回调,打印出 “2” obj.b没有出现在autorun的回调中,无论怎么修改都不会触发回调,obj.a的修改就会触发回调, mobx是怎样在不通过参数传递 ……
最近在学习mobX的时候,探究了一下其实现机制,发现最神奇的莫过于,其中使用@observable装饰的变量的改变可以触发autorun的回调,使用了观察者模式和发布/订阅模式很类似,而这种模式反应在javascript对象上的本质就是Object.defineProperty,在很多框架中的数据双向流绑定也是这样实现的,比如Vue