使用 ts-loader
在构建打包生产代码时面对重重问题,比如 Polyfill 的自动注入等,于是转变为用 Babel 来编译 TypeScript。
一、安装 Babel
安装 Webpack 所必要的 Babel 依赖:
npm i @babel/cli @babel/core @babel/preset-env babel-loader --save-dev
"使用 Babel 编译 TypeScript"继续阅读
使用 ts-loader
在构建打包生产代码时面对重重问题,比如 Polyfill 的自动注入等,于是转变为用 Babel 来编译 TypeScript。
安装 Webpack 所必要的 Babel 依赖:
npm i @babel/cli @babel/core @babel/preset-env babel-loader --save-dev
"使用 Babel 编译 TypeScript"继续阅读
今年 4 月使用 Node 重构了几个 PHP 接口,并使用 PM2 跑在了服务器上,经历了几个迭代以后服务器 CPU 一直 100%,报错日志一直增加,但是由于接口正常运行加上工作比较忙就没管。
"解决服务器运行 Node.js 服务后一直 CPU 100%"继续阅读
在 UI 切图过程中,页面往往由三个部分组成,头部、内容和底部。当页面的内容高度不够撑满屏幕,底部(footer)就跟着内容浮动上来了,小屏幕由于高度有限看不出来异常,但如果是大屏的话,底部下面变会多出很多空白,非常影响美观。
头部使用 position: sticky;
吸顶,再使用盒子(main
)来包住内容(container > content
)和底部(footer
),这个盒子设置最小高度为除头部外的剩余屏幕高度:min-height: calc(100vh - 50px);
,盒子里面使用弹性布局(flex: 1 1 auto;
)让内容区域自动撑开,而底部保持不变(flex: 0 0 auto;
),这样就有了内容不够时底部自动吸底,内容足够时底部自动下移的效果。
"CSS 实现内容高度不够的时候底部(footer)自动贴底"继续阅读
JavaScript 篇幅略多 ★★★
读完时间:2020 年 8 月 20 日
出版时间:2020 年 1 月
"读书笔记:《深入理解TypeScript》 - [澳]Basarat Ali Syed 著 / 郭文超 何小磊 柳星 徐野 译"继续阅读
浅入深出[皱眉] ★★★★★
读完时间:2020 年 8 月 17 日
出版时间:2017 年 3 月
"读书笔记:《算法图解》 - [美]Aditya Bhargava 著 / 袁国忠 译"继续阅读
Webpack 多页面 & GitLab 增量构建部署模板
每新建个独立的页面只需要在 pages
下面新建一个文件夹即可,但必须拥有两个入口文件 index.html
、index.js
。
"Webpack 多页面 & GitLab 增量构建部署模板"继续阅读
CI(持续交付)是功能迭代后自动构建、打包、校验代码格式、跑单测、单测覆盖率,常见的就是 Webpack、Rollup、ESLint等。
CD(持续部署)是经过 CI 后,代码自动部署到服务器。
GitLab CI/CD 通 .gitlab-ci.yml
配置文件来部署。
cd project_path touch .gitlab-ci.yml
"使用 GitLab CI/CD 和阿里云 CLI 自动部署前端项目"继续阅读
# npm npm init # git git init
npm i typescript --save-dev # 查看版本 npx tsc --version
tsconfig.json
npx tsc --init
"创建一个新的 TypeScript 项目"继续阅读
在日常的前端开发中,倘若想验证一个业务功能正向性,需要针对部分用户进行灰度实验。
用一个轻量级的 H5 页面做流量中转,收集完用户信息后使用 Ajax
来请求后端接口来判断一个用户是否命中灰度,再通过 location.href
或 location.replace
来做相应的页面跳转。
优点:
缺点:
示例:
ajax.get('https://getwhich.com').then( abValue => { let jumpUrl = 'https://default.com' if (abValue === 'iAmExp') { jumpUrl = 'https://exp.com' } location.href = jumpUrl } )
"使用 Go&MurmurHash&JsonLogic 实现前端资源灰度分流"继续阅读
const arr = [0, 1, 2, 3, 4] const sum = arr.reduce((prev, curr, index, currArr) => { if (index >= 4) { return prev } else { prev += curr return prev } }, 0) console.log(sum) // 6
const arr = [0, 1, 2, 3, 4] const sum = arr.reduce((prev, curr, index, currArr) => { prev += curr if (curr === 3) currArr.length = 0 return prev }, 0) console.log(sum) // 6
"如何跳出 reduce 循环"继续阅读