探索微前端架构:多种实现方式与实践思考

在当今的前端开发领域,微前端架构正逐渐成为热门话题。它借鉴了微服务的理念,将原本庞大的单体前端应用拆解为多个小型前端应用,并能让它们协同工作,就如同一个完整的应用一样。今天,咱们就一起来深入探讨微前端架构的几种常见实现方式以及在实际应用中需要考虑的方方面面。

一、微前端架构概述

微前端架构的核心思想,就是把 Web 应用从单一的单体应用转变成多个小型前端应用聚合而成的形态。这些小型前端应用具备独立运行、独立开发以及独立部署的能力,而且还能共享组件,实现并行开发。这里所说的前端应用是基于前后端分离的单应用页面,这是谈论微前端的基础前提。

前端国际化全流程解决方案

背景

进入项目组,接到的需求是vue框架的项目实现国际化,实现中英文版本的切换。
目前常用的前端国际化实现方式是使用配置文件的方式,使用的是同一套界面,根据语言的不同加载对应的配置文件。

而实现这一功能,面对的问题是需要将项目中的中文抽离出中文的语言包,并将其翻译输出英文语言包,以及项目中中文替换成语言包中的变量,工作量大且容易出错。
因此,我们需要一种更智能、更高效的解决方案来应对这一挑战,经过深入研究各种技术方案,是不是可以通过插件实现自动识别代码中的可翻译字符串、生成翻译文件并同步不同语言这一繁琐的过程呢 – 于是一个搞定项目国际化的插件就此诞生。

vue2老项目vite升级改造

前言

Vite是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:

Vite 意在提供开箱即用的配置,同时它的 插件 APIJavaScript API 带来了高度的可扩展性,并有完整的类型支持。

vite包含如下特点:

  • 光速启动
  • 热模块替换
  • 按需编译

本次在开发环境增加vite的启动方式,提升开发效率,在生产环境保持原有模式。

如何做组件库的单元测试

前言

在我们开发完一个组件库的后,在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,比如,代码覆盖率必须达到80%或 90%。于是乎,测试人员费尽心思设计案例覆盖代码。用代码覆盖率来衡量,有利也有有弊。

首先,让我们先来了解一下所谓的“代码覆盖率”。我找来了所谓的定义:

代码覆盖率 = 代码的覆盖程度,一种度量方式。

关于如何开发组件库,可看这篇:

如何基于vue开发ui组件库(heaven-ui)

如何搭建一个自己的脚手架

脚手架

搭建脚手架的目的就是快速的搭建项目的基本结构并提供项目规范和约定。目前日常工作中常用的脚手架有 vue-cli、create-react-app、angular-cli 等等,都是通过简单的初始化命令,完成内容的快速构建。

其实我们也可以用git clone url来新建(复制)项目,再 low 一点的方法就是复制粘贴整个文件夹,一样也能达到初始化的目的。

脚手架的本质也是从远程下载一个模板来进行一个新项目,但是脚手架可是高级版的克隆,它主要是提供了交互式的命令让我们可以动态的更改模板,然后用一句命令就可以实现其他内置依赖的初始化,方便了多人协作,不需要将文件传来传去。

接下来我们就开始实现一个简易版的脚手架heaven-cli(可自行命名),目标是实现一个heaven init template-name project-name这样的命令,废话少说,开始进入正题吧!

pm2的基本使用

PM2

PM2 是一个带有负载均衡功能的 Node 应用进程管理器。

主要特性:

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API(Nodejs 模块,允许和 PM2 进程管理器交互)

Git提交规范保护

Git 规范

Git 作为现在最流行的分布式管理工具,基本上是每个团队的必备。

Git Commit格式校验

  • 准备commitlint/cli用于格式校验
  • 准备husky用于git提交代码时触发校验

husky

husky 是创建 git 客户端 hooks 的神器。

目前最新版本是 7.*,文档在这里(opens new window)

初始化 husky 只需要三步。首先要安装:

1
$ npm i husky --save-dev

执行下面的脚本,会初始化一个 .husky 目录:

1
$ npx husky install

初始化后,就可以添加 hook 了。

添加一个 commit-msg 钩子,并指定一个默认 shell:

1
$ npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'

现在在执行 git commit 之前,就会执行上面指定的 shell。

  
 git

理解js中的new

  • 新生成了一个对象
  • 链接到原型
  • 绑定 this
  • 返回新对象

在调用 new 的过程中会发生以上四件事情,我们也可以试着来自己实现一个 new

1
2
3
4
5
6
7
8
9
10
11
12
13
function create() {
// 创建一个空的对象
let obj = new Object()
// 获得构造函数
let Con = [].shift.call(arguments)
// 链接到原型
obj.__proto__ = Con.prototype
// 绑定 this,执行构造函数
let result = Con.apply(obj, arguments)
// 确保 new 出来的是个对象
return typeof result === 'object' ? result : obj
}

node版本切换工具n的使用介绍

node版本切换工具n的使用介绍

n

交互式管理 Node.js 版本

支持的平台

n在 macOS、Linux(包括适用于 Linux 的 Windows 子系统)和各种其他类 Unix 系统上均受支持。它被编写为 BASH 脚本,但不需要您使用 BASH 作为您的命令外壳。

n 在 Microsoft Windows(如 PowerShell)的本机 shell、Windows BASH 的 Git 或 Cygwin DLL 中不起作用。


:D 一言句子获取中...