头图

SegmentFault 思否技术周刊 Vol.80 — 玩转新时代前端构建工具

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

  • 一个开发服务器
  • 一套构建指令

Vite 提供了一套原生 ESM 的 HMR API。 具有 HMR 功能的框架可以利用该 API 提供即时、准确的更新,而无需重新加载页面或清除应用程序状态。Vite 内置了 HMR 到 Vue.js 单文件组件(SFC)和 React Fast Refresh 中。

文章推荐

迁移 Vue v2.x 版本到 Vite // jsliang

本次「迁移 Vue v2.x 项目到 Vite」将分为 2 个部分:

  1. 以一个简单 Demo,进行 Vite 快速入手(同时也是补充完善实例项目未解决的问题)
  2. 对实例项目迁移,对比 Vue CLI 和 Vite,以及 Vite 构建中碰到的问题。

本文更倾向于随手可查工具文,就好比之前写过的 Webpack 4 文章一样,它很快会石沉大海,但是我们将碰到的问题都反馈出来后,会让后面的人少跑弯路,这是很棒的事情。

vite3 + vue3如何封装健壮的【SVG插件】? // 代码诗人_

概念: SVG是一种基于XML的矢量图形格式,SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体,用于在Web和其他环境中显示各种图形;它允许我们编写可缩放的二维图形,并可通过CSS或JavaScript进行操作。它由万维网联盟制定,是一个开放标准。

优点: 可伸缩性,响应性,交互性,可编程性,体积小性能高。
因为SVG是基于矢量的,所有在放大图形时不会出现任何降低或丢失保真度的情况。它只是重新绘制以适应更大的尺寸,这使得它非常适合多语境场景,例如响应式Web设计。而且性能也极佳,与栅格图形(如GIF,JPG和PNG)相比,SVG图形通常是较小的文件。

浏览器支持度: svg对市面上常见的浏览器已经有很好的支持度

为什么 qiankun 不能和 vite 一起使用? // winter

  1. vite2 不支持 runtime publicPath,这项能力在 webpack 中由内置变量__webpack_public_path__提供,runtime publicPath是 qiankun 加载子应用的核心 (由 import-html-entry 模块提供) ,用于预加载及引入异步脚本
  2. esm 会使 qiankun 的 js 沙箱失效,qiankun 内部的 js 沙箱使用将 window 对象进行了代理,以防止全局作用域被污染,但 esm 模块始终具有自己独立的顶级作用域,也就是说它访问到的 window 是全局作用域下的,而不是 qiankun 沙箱中提供的代理 window,虽然可以通过在生产环境打包为 umd 格式的方式来避免使用 esm,但有些本末倒置了

React 为什么不将 Vite 作为默认推荐? // 卡颂

在React文档中,对于构建新的React应用,首推的方式是CRA(create-react-app)。

CRA推出于2016年,彼时还没有成体系的React脚手架工具供大家使用,再加上这是官方工具,一经推出就受到了欢迎。截止当前,CRA仓库已经收获快10wstar。

但是,随着时间的推移,出现了很多优秀的替代品,比如parcel、vite提供的React模版。

而CRA本身的进步速度却在放缓,其上一次提交要追溯到去年9月8日:

图片

加餐

【Vite 实践】Vite 库模式能满足你吗?或许你需要统一构建 // Samon

Vite 秉承了开箱即用,简化配置的思路,确实显著提升了前端开发体验。

但是在类库模式的构建上却有所欠缺,只能处理单个输入和单输入出的情况,构建场景单一,Vite 社区上目前也没有可直接使用的工具,所以才有了开发一个统一构建插件的想法。

目前 vite-plugin-build 插件已可以直接使用,也录入了 Vite 官方 awesome-vite,希望也刚好能满足一些人的需要。

image.png

如何快速从零开始搭建一个前端项目 // chlorine

单元测试是项目开发中比较重要的一部分,通过单元测试可以一定程度上保障项目的代码质量以及逻辑的完整性,对于 vite 创建的项目,我们选择与之匹配度比较高的测试框架 vitest 来编写测试用例,安装如下:

pnpm create vitest jsdom -D

vite.config.ts 中配置 vitest,选择 js-dom 环境,这里在顶部添加 vitest 的类型声明引入后,即可在 vitest 中共享 viteplugins 等配置

问答推荐


# SegmentFault 技术周刊 #

「技术周刊」是社区特别推出的技术内容系列,一周一主题。

每周二更新,欢迎「关注」。大家也可以在评论处留言自己感兴趣的主题,推荐主题相关的优秀文章。

如有问题可以添加小姐姐微信~

image.png


SegmentFault_社区周刊
主题技术周刊,每周分享新鲜有趣的技术干货。
avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

851 声望
2.1k 粉丝
0 条评论
推荐阅读
迁移 Vue v2.x 版本到 Vite
人生无常,大肠包小肠~在接近年底的时候,有一个 Vue 项目,需要从中抽取 2 个模块出来。然后想着新建项目,Vue CLI 也是学,Vite 也是学,于是哼次哼次用上了 Vite,结果开始了一路的 bug 挨打之旅……警告:本文...

jsliang11阅读 1.4k

封面图
React为什么不将Vite作为默认推荐?
CRA推出于2016年,彼时还没有成体系的React脚手架工具供大家使用,再加上这是官方工具,一经推出就受到了欢迎。截止当前,CRA仓库已经收获快10wstar。

卡颂4阅读 1.2k

封面图
SegmentFault 思否技术周刊 Vol.76 — 破解 Javascript 玩法
维基百科:在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是在支持头等函数的编程语言中实现词法绑定的一种技术。MDN: 闭包(closure)是一个函数以...

Beverly4阅读 1.6k

封面图
[译]Vue官方成员:Vite生态发展的怎么样了
不幸的是,那时候 Vite 有坑,热更新做的也不如传统 webpack 项目,经常需要改一行代码就刷新一下浏览器。所以我趁项目还没变的很庞大之前改用 vue-cli 重构了该项目。但之后看见许多新出现的开源项目都用的 Vite...

手撕红黑树3阅读 6.8k

SegmentFault 思否技术周刊 Vol.78 — Git 必看技术补给
Git 的诞生是一个非常有趣的故事。1991年 Linus 开源了 Linux 内核,无数 Linux 爱好者在世界各地为 Linux 编写代码,那么问题来了,这些代码该如何管理呢?起初 Linus 使用 BitKeeper(BitMover 公司的版本控制软...

Beverly3阅读 2k

封面图
SegmentFault 思否技术周刊 Vol.75 — 简简单单画个“图”
很多时候,在使用 Canvas 绘制圆角矩形都是一件比较麻烦的事,因为之前并没有直接的方法,只能通过直线和圆弧间接组合而成,下面是一个常规绘制方式 {代码...} 这里x、y、w、h、r分别代表x坐标、y坐标、宽度、高...

Beverly1阅读 1.5k

封面图
拥抱下一代前端工具链-Vue老项目迁移Vite探索
随着项目的不断维护,代码越来越多,项目越来越大。调试代码的过程就变得极其痛苦,等待项目启动的时间也越来越长,尤其是需要处理紧急问题的时候,切换项目启动,等待的时间就会显得尤为的漫长。无法忍受这种开...

京东云开发者3阅读 307

封面图
avatar
Beverly
SegmentFault 思否社区打工人

怂人面前全是坑,努力填坑 。

851 声望
2.1k 粉丝
宣传栏