webpack 的打包流程

这篇具有很好参考价值的文章主要介绍了webpack 的打包流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.webpack 的打包流程

webpack 的打包流程

从以上5个方面来分析Webpack的打包流程:

  1. 初始化参数:这一步会从我们配置的webpack.config.js中读取到对应的配置参数和shell命令中传入的参数进行合并得到最终打包配置参数。

  2. 开始编译:这一步我们会通过调用webpack()方法返回一个compiler 方法,创建我们的compiler对象,并且注册各个Webpack Plugin。找到配置入口中的entry代码,调用compiler.run()方法进行编译。

  3. 模块编译:从入口模块进行分析,调用匹配文件的loaders对文件进行处理。同时分析模块依赖的模块,递归进行模块编译工作。

  4. 完成编译:在递归完成后,每个引用模块通过loaders处理完成同时得到模块之间的相互依赖关系。

  5. 输出文件:整理模块依赖关系,同时将处理后的文件输出到output的磁盘目录中。

2.webpack的事件流机制

webpack是基于事件流的插件集合,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是Tapable。

Tapable包本质上是为我们更方便创建自定义事件和触发自定义事件的库,类似于Node.js的EventEmitter Api,主要是控制钩子函数的发布与订阅,控制着webpack的插件系统。Webpack中最核心的负责编译的Compiler和负责创建的捆绑包的Compilation都是Tapable实例。

3.babel的工作流程

在日常前端项目中,绝大多数时候我们使用babel进行js代码的转化,它的工作流程大概可以概括称为以下三个方面:

  1. Parse(解析)阶段:这个阶段将我们的js代码(字符串)进行词法分析生成一系列tokens,之后再进行语法分析将tokens组合称为一颗AST抽象语法树。(比如babel-parser它的作用就是这一步)

  2. Transform(转化)阶段:这个阶段babel通过对于这棵树的遍历,从而对于旧的AST进行增删改查,将新的js语法节点转化称为浏览器兼容的语法节点。(babel/traverse就是在这一步进行遍历这棵树)

  3. Generator(生成)阶段:这个阶段babel会将新的AST转化同样进行深度遍历从而生成新的代码。(@babel/generator)

前端的webpack如何进行打包的?
「前端基建」带你在Babel的世界中畅游文章来源地址https://www.toymoban.com/news/detail-437598.html

到了这里,关于webpack 的打包流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用webpack打包一个库library,使用webpack打包sdk.

    用webpack打包时长会随着代码增加而变长,代码量可能比较大的可以参考我的另一篇使用vite打包sdk文章. 使用vite打包libary模式打包sdk 如果你需要自己封装一些包给别人使用,那么可以参考以下方法 经过以上步骤后会生成一个library文件夹,里面包含一个package.json文件。然后简单修

    2024年02月13日
    浏览(32)
  • webpack打包之 copy-webpack-plugin

    copy-webpack-plugin 打包复制文件插件。 1、什么时候要使用? 在离线应用中,前端所有文件都需在在本地,有些文件(比如iconFont以及一些静态img)需要转为离线文件,这些文件可以直接引用更方便些,这就需要在打包时直接复制到打包文件下。 2、安装依赖 3、配置webpack 4、打包

    2024年02月17日
    浏览(35)
  • 【Webpack】打包资源的名称路径和清空打包资源

    此时输出文件目录: (注意:需要将上次打包生成的文件清空,再重新打包才有效果) 观察 dist 目录资源情况

    2024年02月21日
    浏览(26)
  • Webpack打包vue项目

    步骤一: 创建一个vue项目 在项目里打开终端 步骤二: 初始化npm项目,创建一个package.json文件 步骤三: 修改 package.json 步骤四: npm安装Webpack 步骤五: 在项目根目录下创建一个名为 webpack.config.js 的文件 这个配置文件设定了入口文件、输出路径、模块解析规则以及插件使用

    2024年01月21日
    浏览(32)
  • Webpack打包ts文件

    安装依赖包: 配置webpack配置文件(webpack.config.js): 还需要指定一个配置文件来指定我们ts的一个编译规范,在根目录创建一个tsconfig.json    

    2024年02月12日
    浏览(35)
  • webpack打包

    背景:代码增加之后,如何打包呢? 1、确保在src/index.js引用和使用 2、重新执行yarn build打包命令 1、新建webpack.config.js配置文件 2、填入配置 3、修改入口文件名 4、打包观察效果 webpack.config.js 文件代码

    2024年02月16日
    浏览(28)
  • Webpack的打包过程

    Webpack的打包过程可以分为以下几个步骤,每个步骤的具体操作会根据配置文件中的设置来执行: 1. 解析入口文件(Entry Point Resolution):Webpack会根据配置文件中指定的入口文件(entry)来开始打包过程。通常情况下,会有一个或多个入口文件作为应用程序的初始模块。 2. 构建

    2024年02月12日
    浏览(26)
  • webpack 打包优化 - splitChunks

    打包时会遇到的问题: 打包文件过大,首屏加载时间过长,js阻塞页面渲染导致白屏 改动业务代码后,对于第三方库也会一并重新打包到一个出口文件,浏览器无法利用缓存来减少请求和加载的时间 针对以上两个问题,利用splitChunks可以将各个模块进行分割,并提取出相同部

    2024年04月27日
    浏览(19)
  • webpack打包优化指南

    前言 目前所有公司项目的代码量都比较大,打包出来的文件会很大,甚至导致打包压缩代码时内存不足,页面加载速度也较慢。为了优化加载速度,下面提供一些编码指导建议: 一、浏览器(chrome)运行指标 浏览器请求并发数量, chrome 请求并发数量为 6 个 webpack 优化目的是为

    2024年02月16日
    浏览(34)
  • webpack打包教程

     Webpack是一种前端资源构建工具,一个静态模块打包器(module bundler)         在Wbpack看来,前端的所有资源文件( js / json / css / img / less / ... )都会作为模块处理。         他将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)  当我们在文件里使用

    2024年02月08日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包