Tag: frontend-engineering
All the articles with the tag "frontend-engineering".
Git Hooks 与 Husky 原理解析与应用
Published: at 16:00git hooks 是前端项目在本地通用的质量保障手段。 > npm script hook 也可对前端工程做质量加强,可见往日文章。 它在 git commit 、 git push 等 git 操作之前与之后可设置自动执行的脚本,被称为 git hooks 脚本。 代码在提交之前 ( pre-commit hook ),可做以下诸多校
如何维护自己的测试示例代码
Published: at 16:00大家好,我是山月。 在我大学乃至刚毕业的两三年,在本地维护一个文件夹,维护所有的示例代码,用以新技术调研及学习一些新的 API 之类。 然而代码维护不成规矩,很多示例代码杂乱无章,写了之后再不会看第二眼。随着离职,示例代码文件夹被归为无意义且无用的代码一类,被一键格式化了。 今天,我总结下如何更好地维护自己的示例代码,不至于如同鸡肋一样食
如何找到一个合适的 npm 库
Published: at 16:00由于业务需求,我需要一个 React 的弹框组件,我应如何快速选择一个合适的 npm 库? 在错误的网址进行搜索,事倍功半: 1. ~~某度~~ 在正确的网址进行搜索,事半功倍: 1. $1: 官方网站,权威网站 2. $1 3. $1 不要使用错误冗长的关键词搜索: ~~我需要一个 React 的弹框组件~~。 请使用正确的关键词进行搜
如何为前端本地环境配置 https 证书
Published: at 12:42使用某些 html API 时,https 是前置必须项,这要求我们在本地开发环境也能够配置 https。否则你要每次部署到测试环境才能预览效果,这对开发的敏捷度造成了极大的干扰。
团队编码规范约束最佳实践
Published: at 13:07那什么是代码风格呢?从小的来说,有的开发喜欢带分号,有的不喜欢带分号。有的喜欢使用空格,有的喜欢使用 Tab。有的喜欢空两个空格,有的喜欢四个空格。除了这些,还有一些关于代码的优化,如避免声明未使用,避免冗余的代码逻辑等。如果你是新参加工作的人员,又恰好遇到一个代码风格混乱,密密麻麻赋值前后都不带空格的项目,只能有苦难言了。
前端部署的发展历程
Published: at 00:57前端一说起刀耕火种,那肯定紧随着前端工程化这一话题。随着 `react`/`vue`/`angular`,`es6+`,`webpack`,`babel`,`typescript` 以及 `node` 的发展,前端已经在逐渐替代过去 `script` 引 `cdn` 开发的方式了,掀起了工程化这一大浪潮。得益于工程化的发展与开源社区的良好生态,前端应用的可用性与效率得到了很大提高。
CICD 下前端的多特性分支环境部署
Published: at 00:24无论大中小企业,多特性分支的前端环境基本上已成为了标配,即每一个功能分支都配有相应的测试环境。今天山月就循序渐进来讲解下多分支环境的实现方式,经济基础决定上层建筑,企业的基础服务建设决定实现方式,这里是基于 Docker 与 CICD 的实现。
使用 docker 高效部署你的前端应用
Published: at 00:38Docker 变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,运维管理。对于业务开发者而言,随着持续集成的发展,对代码质量及快速迭代的要求也越来越高。
在生产环境中优化你的 npm i 速度
Published: at 06:00对于一个前端应用,或者说是一个 Node 应用,在 CICD pipeline 中,无论是构建,测试,部署,其中必不可少的环节就是依赖安装: npm i
网站的缓存控制策略最佳实践
Published: at 06:00对于一个网站来讲,性能关乎用户体验,你在更短的时间内打开网站,你将会留住更多的用户。如果你的页面十秒才能打开,那再好的用户交互也是徒然。
javascript 代码是如何被压缩的
Published: at 14:00在前端中但凡谈到打包,肯定要提及到 `webpack`,毕竟它现在已经是最为流行的打包工具。但 `webpack` 更多地是表现在 `术` 上,于是我决定写这篇文章,更多地讲解一些关于 `道` 的。 对于一个前端而言,生产环境的静态资源优化,它既是面试中的高频问题,同时也最容易成为平时工作中的 OKR/KPI。
如何更好地优化打包资源
Published: at 01:00随着前端的发展,特别是 `React`,`Vue` 等构造单页应用的兴起,前端的能力得以很大提升,随之而来的是项目的复杂度越来越大。此时的前端的静态资源也越来越庞大,而毫无疑问 `javascript` 资源已是前端的主体资源,对于压缩它的体积至为重要。
ESM 大势所趋
Published: at 16:00**由 ESM 的普及,而带来的打包工具的革命以及适用于 ESM 下一代 CDN 的发展,业务项目在生产环境开始使用原生的 ESM 代替以前的 Bundle 方案,从而导致开发体验及网站速度的大幅提升。** 核心代码就是下边这一行: 使用 HTTP Import 的方式代替以前的 Bare Import + Bundle 而 ESM 的发
AST 的生成
Published: at 16:00AST 是 Abstract Syntax Tree 的简称,是前端工程化绕不过的一个名词。它涉及到工程化诸多环节的应用,比如: 1. 如何将 Typescript 转化为 Javascript (typescript) 1. 如何将 SASS/LESS 转化为 CSS (sass/less) 1. 如何将 ES6+ 转化为 ES5 (b
npm audit
Published: at 16:00如何确保所有 npm install 的依赖都是安全的? 当有一个库偷偷在你的笔记本后台挖矿怎么办? 比如,不久前一个周下载量超过八百万的库被侵入,它在你的笔记本运行时会偷偷挖矿。 Audit ,审计,检测你的所有依赖是否安全。 npm audit / yarn audit 均有效。 通过审计,可看出有风险的 package 、依赖库的依
资源是如何打包的
Published: at 16:00以下代码是 sum.js 与 index.js 两个代码。 以下代码是打包后的代码。
Long Term Cache
Published: at 16:00使用 webpack 等打包器进行打包时,每个资源都可生成一个带有 hash 的路径。如 + build/main.071b73.js + build/main.94474e.css + build/logo.18bac8.png 此处对添加 hash 的资源设置永久缓存,可大幅度提高该网站的缓存能力,从而大幅度提高网站的二次加载性能。
使用 CDN 加速你的网站
Published: at 16:00前端面试过程中有一个万能的面试题,当他们想不到还有什么面试题要问的时候,就会问这个: 如何优化你们的网站性能。 而其中 CDN 就是其中一条,而在我看来,它是最重要的一条: 配置CDN可以使网站性瞬时得到质的提升,即使静态资源打包体积过大,并且缓存策略很差。 那什么是 CDN 呢? CDN,全称 Content Delivery Netw
8s 定律
Published: at 16:00路径拥堵 中心服务器,去中心,低延迟,分布式 CDN cache L2 / CDN cachd L1 DCDN/SCDN DNS/TCP/SSL/TTFB mtr/traceroute/httpstat/17测 ETag X-Cache: HIT X-Swift-CacheTime: 3600 X-Swift-SaveTime: 3600
如何正确地进行分包
Published: at 16:00*为什么需要进行分包,一个大的 bundle.js 不好吗?* 极其不建议,可从两方面进行考虑: 1. 一行代码将导致整个 bundle.js 的缓存失效 1. 一个页面仅仅需要 bundle.js 中 1/N 的代码,剩下代码属于其它页面,完全没有必要加载 > webpack(或其他构建工具) 运行时代码不容易变更,需要单独抽离出来,比