跳到正文
山月行

标签: frontend-engineering

这是山月博客(shanyue.tech)中标签「frontend-engineering」的文章归档。带有该标签的已发布长文共 45 篇,下方列表按更新时间从新到旧排列。每条条目包含文章标题、发布时间与摘要,点击标题进入全文。 本站主题集中在 AI 研发实践:多 Agent 设计与协作、Harness 与自动化评测、Cursor 等 IDE 下的 Rules / Skills 与工作流,以及把这些能力落到真实仓库时的工程细节。标签页把同一关键词下的长文聚在一起,便于从主题切入阅读,也便于在无 JavaScript 的环境下直接看到可读正文。

本页收录 20 篇:《ESM 大势所趋》、《npm audit》、《如何更好地优化打包资源》、《资源是如何打包的》、《Long Term Cache》、《使用 CDN 加速你的网站》、《8s 定律》、《如何正确地进行分包》、《什么是 CICD》、《前后端分离》、《corejs》、《如何维护自己的测试示例代码》、《前端部署的发展历程》、《使用 docker 高效部署你的前端应用》、《如何使用 docker 部署前端》、《团队编码规范约束最佳实践》、《eslint 核心》、《浏览器中的原生 ESM》、《CICD 下前端的多特性分支环境部署》、《Git Hooks 与 Husky 原理解析与应用》。各文摘要如下——《ESM 大势所趋》:由 ESM 的普及,而带来的打包工具的革命以及适用于 ESM 下一代 CDN 的发展,业务项目在生产环境开始使用原生的 ESM 代替以前的 Bundle 方案,从而导致开发体验及网站速度的大幅提升。 核心代码就是下边这一行: 使用 HTTP Import 的方式代替以前的 Bare Import + Bundle 而… 《npm audit》:如何确保所有 npm install 的依赖都是安全的? 当有一个库偷偷在你的笔记本后台挖矿怎么办? 比如,不久前一个周下载量超过八百万的库被侵入,它在你的笔记本运行时会偷偷挖矿。 Audit ,审计,检测你的所有依赖是否安全。 npm audit / yarn audit 均有效。 通过审计,可看出有风险的 pack… 《如何更好地优化打包资源》:随着前端的发展,特别是 React,Vue 等构造单页应用的兴起,前端的能力得以很大提升,随之而来的是项目的复杂度越来越大。此时的前端的静态资源也越来越庞大,而毫无疑问 javascript 资源已是前端的主体资源,对于压缩它的体积至为重要。 《资源是如何打包的》:用 sum.js 与 index.js 演示 CommonJS 打包后的 modules 表与自定义 require,并引出「如何生成 modules」。 《Long Term Cache》:使用 webpack 等打包器进行打包时,每个资源都可生成一个带有 hash 的路径。如 + build/main.071b73.js + build/main.94474e.css + build/logo.18bac8.png 此处对添加 hash 的资源设置永久缓存,可大幅度提高该网站的缓存能力,从而大幅度提高网… 《使用 CDN 加速你的网站》:前端面试过程中有一个万能的面试题,当他们想不到还有什么面试题要问的时候,就会问这个: 如何优化你们的网站性能。 而其中 CDN 就是其中一条,而在我看来,它是最重要的一条: 配置CDN可以使网站性瞬时得到质的提升,即使静态资源打包体积过大,并且缓存策略很差。 那什么是 CDN 呢? CDN,全称 Content Del… 《8s 定律》:路径拥堵 中心服务器,去中心,低延迟,分布式 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-Save… 《如何正确地进行分包》:为什么需要进行分包,一个大的 bundle.js 不好吗? 极其不建议,可从两方面进行考虑: 1. 一行代码将导致整个 bundle.js 的缓存失效 1. 一个页面仅仅需要 bundle.js 中 1/N 的代码,剩下代码属于其它页面,完全没有必要加载 > webpack(或其他构建工具) 运行时代码不容易变更,需要… 《什么是 CICD》:+ CI ,Continuous Integration,持续集成。 + CD ,Continuous Deployment,持续部署。 CICD 一般合称,无需特意区分二者区别。从开发、测试到上线的过程中,借助于 CICD 进行一些自动化处理,保障项目质量。 CICD 与 git 集成在一起,可理解为服务器端的 gi… 《前后端分离》:强大的分裂感。现在使用 React 开发业务,但是这里边 Component 我来写,你来负责 CSS。 + controller + user + views + user 由于 set-cookie 的需要, /etc/host 静态资源服务器 在线上使用性能更加强大的 nginx 。 BFF , Backend… 《corejs》:$1 是关于 ES 标准最出名的 polyfill ,polyfill 意指当浏览器不支持某一最新 API 时,它将帮你实现,中文叫做垫片。你也许每天都与它打交道,但你毫不知情。 > 有一段时间,当你执行 npm install 并且项目依赖 core-js 时,会发现 core-js 的作者正借助于 npm post… 《如何维护自己的测试示例代码》:大家好,我是山月。 在我大学乃至刚毕业的两三年,在本地维护一个文件夹,维护所有的示例代码,用以新技术调研及学习一些新的 API 之类。 然而代码维护不成规矩,很多示例代码杂乱无章,写了之后再不会看第二眼。随着离职,示例代码文件夹被归为无意义且无用的代码一类,被一键格式化了。 今天,我总结下如何更好地维护自己的示例代码,… 《前端部署的发展历程》:前端一说起刀耕火种,那肯定紧随着前端工程化这一话题。随着 react/vue/angular,es6+,webpack,babel,typescript 以及 node 的发展,前端已经在逐渐替代过去 script 引 cdn 开发的方式了,掀起了工程化这一大浪潮。得益于工程化的发展与开源社区的良好生态,前端应用的可用… 《使用 docker 高效部署你的前端应用》:Docker 变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,运维管理。对于业务开发者而言,随着持续集成的发展,对代码质量及快速迭代的要求也越来越高。 《如何使用 docker 部署前端》:使用 docker 部署前端最大的好处是隔离环境,单独管理: 1. 前端项目依赖于 Node v16,而宿主机无法满足依赖,使用容器满足需求 1. 前端项目依赖于 npm v8,而宿主机无法满足依赖,使用容器满足需求 1. 前端项目需要将 8080 端口暴露出来,而容易与宿主机其它服务冲突,使用容器与服务发现满足需求… 《团队编码规范约束最佳实践》:那什么是代码风格呢?从小的来说,有的开发喜欢带分号,有的不喜欢带分号。有的喜欢使用空格,有的喜欢使用 Tab。有的喜欢空两个空格,有的喜欢四个空格。除了这些,还有一些关于代码的优化,如避免声明未使用,避免冗余的代码逻辑等。如果你是新参加工作的人员,又恰好遇到一个代码风格混乱,密密麻麻赋值前后都不带空格的项目,只能有苦难… 《eslint 核心》:eslint ,对代码不仅有风格的校验,更有可读性、安全性、健壮性的校验。 关于校验分号、冒号等,属于风格校验,与个人风格有关,遵循团队标准即可,可商量可妥协。 与 prettier 不同, eslint 更多是关于代码健壮性校验,试举一例。 + Array.prototype.forEach 不要求也不推荐回调函数返… 《浏览器中的原生 ESM》:通过 script[type=module] ,可直接在浏览器中使用原生 ESM 。这也使得前端不打包 ( Bundless ) 成为可能。 由于前端跑在浏览器中,因此它也只能从 URL 中引入 Package 1. 绝对路径: https://cdn.sykpack.dev/lodash 1. 相对路径: ./lib… 《CICD 下前端的多特性分支环境部署》:无论大中小企业,多特性分支的前端环境基本上已成为了标配,即每一个功能分支都配有相应的测试环境。今天山月就循序渐进来讲解下多分支环境的实现方式,经济基础决定上层建筑,企业的基础服务建设决定实现方式,这里是基于 Docker 与 CICD 的实现。 《Git Hooks 与 Husky 原理解析与应用》:git hooks 是前端项目在本地通用的质量保障手段。 > npm script hook 也可对前端工程做质量加强,可见往日文章。 它在 git commit 、 git push 等 git 操作之前与之后可设置自动执行的脚本,被称为 git hooks 脚本。 代码在提交之前 ( pre-commit hook…

想浏览更多主题,可前往标签索引或全部长文。

文章列表