构建工具承担了哪些工作?

简介: 构建工具承担了哪些工作?

前提:浏览器只认识html、css、js

在实际项目中,一般都会具备如下功能:

1、TypeScript

2、Vue/React

3、less/scss

4、语法降级:babel

5、体积优化:UglifyJS

这些文件浏览器是无法直接识别的,需要通过编译或转换成浏览器认识的样子

1、ts:如果遇到ts文件需要使用tscts转换成js代码

2、vue/react:安装vue-complier / react-complier,项目中的.vue文件或者react项目中的jsx文件转换成render函数

3、lessscss需要安装less-loaderscss-loader等编译工具

4、语法降级:babees的新语法转换成旧版浏览器可以接受的语法

5、体积优化:UglifyJS将代码进行压缩变成体积更小性能更高的文件

这些东西都需要我们手动运行,每次我们对文件进行修改保存后想要预览最新的效果,都需要重新将上面的文件全都手运行编译一遍,非常麻烦。这个时候就需要一个构建工具帮我们承担这些工作,将tec、vue-complier、less、babel、UglifyJS全都集成到一起,构建工具替我们完成,只要代码一发生变化,构建工具就会帮我们自动去编译或转换这些文件,开发者只需要关注代码即可。

构建工具承担了哪些工作?

1、直接从node_modules里引入代码、多种模块化支持(esmodule、commonjs)

终端 npm i loadsh,在html文件内直接引入loadsh会报错,因为浏览器无法识别node_modules

上面的是esmodules,使用commonjs多模块直接引入也是无法识别的

我们可以通过构建工具来进行依赖预构建,从而解决该问题。

vite依赖预构建 (点击直达👈)

2、处理代码兼容性:babel语法降级、less/ts语法转换,需要注意的是,代码的兼容性不是构建工具完成的,而是构建工具将这些语法对应的处理工具集成来自动处理)

3、提高项目性能:压缩文件,代码分割

4、优化开发体验:

  • 构建工具会帮你自动监听文件的变化,当文件变化以后自动帮你调用对应的集成工具进行重新打包,然后在浏览器重新运行(热更新)
  • 开发服务器:跨域问题,使用代理来解决跨域问题。

打包:将浏览器不认识的代码交给构建工具进行编译处理的过程叫做打包,打包完成后会返回给浏览器一个可认识的文件

构建工具可以让我们不用每次关心代码在浏览器如何运行,只需要给构建工具提供一个配置文件(该配置文件不是必须的,构建工具默认帮你配置好了),有了这个集成的配置文件以后,我们就可以在下次需要更新的时候调用一次对应的命令即可,再结合热更新,构建工具会帮我们自动处理这些编译和转换问题,开发者只需要关注代码本身的编写即可。

目录
相关文章
|
2月前
|
监控 安全 项目管理
项目成功秘诀:高效管理策略确保按时交付
项目成功对企业生存发展至关重要,需要明确目标和范围,运用SMART原则和设计思维确保目标与市场需求相符。通过工作分解、优先级排序管理需求,建立变更和风险管理流程。制定详细项目计划,考虑约束条件、关键节点和风险。优化团队协作,明确角色责任,建立有效沟通机制,激励团队成员。实施PDCA循环控制项目进程,关注交付和复盘,以实现高质量的项目成果。
112 1
|
2月前
|
算法 测试技术 程序员
软件开发的生命周期:从构想到维护
软件开发的生命周期:从构想到维护
|
安全 架构师 中间件
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
谨以此文,分享一些我加入阿里云后,我和我所在团队的成长经历。这里既有我个人如何从程序员成长为一个技术经理,也有我的团队如何把事情越做越大的过程和思考,希望能够帮到有需要的人。
5个人如何1年交付了120+项目?分享我在阿里云做交付的工作手记
|
2月前
|
监控
项目总延期:确保软件开发公司按时交付项目,实用方法
在当今竞争激烈的商业环境中,软件开发项目的按期交付不仅是技术实力的体现,更是保障业务连续性和客户满意度的关键。面对可能存在的项目延期风险,一套有效的预防与应对机制显得至关重要。以下是参考“东莞梦幻网络科技”软件开发公司,有哪些保障条例,保证软件开发项目能够如期交付:
|
9月前
|
项目管理
【项目开发计划制定工作经验之谈】
【项目开发计划制定工作经验之谈】
|
存储 缓存 资源调度
Monorepo,大型前端项目管理模式实践
阅读本文您将了解到:什么是 monorepo、为什么要 monorepo、如何实践 monorepo。
6366 50
Monorepo,大型前端项目管理模式实践
|
测试技术 开发者
从接到一个新需求到完成交付,我做了这些工作
从接到一个新需求到完成交付,我做了这些工作
从接到一个新需求到完成交付,我做了这些工作
|
运维 Ubuntu Linux
干货 | 应用打包还是测试团队老大难问题?
干货 | 应用打包还是测试团队老大难问题?
|
BI 程序员
实施项目--为什么开发人员一直在抱怨需求变动
  几年前的某个时候,公司大伙都等着下班我却等着晚上加班,因为产品经理对产品的某个功能进行了调整和修改,我必须加班将其修改完善。对于这种事情我已经数不清了,产品经理的每一次变动都得让我们技术部门的同学们加班到深夜甚至到天明,如今回忆起来历历在目!今天这个文章我们不谈论是谁的责任,也不去抨击产品经理的无能,说说技术人员为什么总是在抱怨需求在变动这些事, 希望大家踊跃讨论。
1245 0