Webpack 打包

模块打包工具的由来

ESM存在兼容问题(主流浏览器解决了)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

模块打包工具概要

在这里插入图片描述


可以通过webpack把零散的文件打包到一个js中,通过下面这个进行代码兼容处理(转ES5)

在这里插入图片描述


可以根据我们意愿进行拆分打包,把想打包到一起的文件组织起来,形成一个程序运行时所需的文件,后面需要的文件,用户点击后再加载,这样就可以渐进式加载,不会导致文件过碎或过大

在这里插入图片描述


在这里插入图片描述

Webpack 快速上手

可对前端所以资源进行模块化。

在这里插入图片描述


yarn webpack 进行打包,会先从src index.js打包

在这里插入图片描述

Webpack 配置文件

webpack4后支持零配置启动打包。默认src/index.js为打包入口

在这里插入图片描述


如何自定义路径
根目录传教webpack.config.js文件(这个文件运行在node环境需要安装COMJS方式编写代码)

在这里插入图片描述

Webpack 工作模式

这个模式大大减少了webpack的使用复杂度,可以理解为 针对不同环境的几组预设配置。
如果用默认的生产模式,打包后的结果无法查看源码

在这里插入图片描述


开发模式的代码

在这里插入图片描述


mode none

在这里插入图片描述


主要就这三种工作模式
配置中指定

在这里插入图片描述

Webpack 打包结果运行原理

本次演示mode none进行打包,这样就可以看到最原始的代码

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


打开浏览器调试看运行过程

在这里插入图片描述


接受到俩个对应的模块函数

在这里插入图片描述


单步调试往下走

在这里插入图片描述


跳过一些不重要的 一直到

在这里插入图片描述


加载这个函数,先判断require有没有被加载过,如果有就缓存里读,没有就创建新对象

在这里插入图片描述


调用函数

在这里插入图片描述


其实打包过后的代码不会很复杂
只是把我们的模块放到了同一个文件中。

Webpack 资源模块加载

可以打包任意资源,这里css为立,运行后报错,因为还没安装css-loader

在这里插入图片描述

webpack默认只解析js代码,所以编译对应的代表需要loader 例如css-loader

在这里插入图片描述


yarn add css-loader --dev
配置

在这里插入图片描述


这时打开网页并没有效果,其实是webpack打包了 但是还没有使用,需要安装另一个loader
这个的作用就是把转换后的结果 通过style标签的形式追加到页面上
yarn add style-loader --dev
配置 这里注意,配置了多个loader 执行顺序是从后往前 就是下面的先执行

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

Webpack 导入资源模块

打包入口=启动入口

在这里插入图片描述


在这里插入图片描述


入口还是js,css在文件中import即可

在这里插入图片描述


规范上 css和js应该单独写,为什么webpack建议我们import呢? 因为

在这里插入图片描述


webpack的思想哲学,用到的地方就得导入

Webpack 文件资源加载器

yarn add file-loader --dev
配置

在这里插入图片描述

在这里插入图片描述


运行服务器后发现找不到图片,因为webpack默认打包后的文件在根目录,我们可以通过配置告诉webpack打包后的文件在那

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


入口函数中发现

在这里插入图片描述


运行服务器,可以显示了

在这里插入图片描述


在这里插入图片描述


找到对应loader 任何拷贝文件到对应目录

Webpack URL 加载器

除了拷贝处理物理文件外,还有通过dataurl表示的方法也非常主流,

在这里插入图片描述


dataUrls是一种特殊的协议,可以用url表示一个文件

在这里插入图片描述


使用这种的话就不需要发生http请求。

示例

在这里插入图片描述


在这里插入图片描述


图片

在这里插入图片描述


这样就可以用dataulrs表示任何文件了

yarn add url-loader --dev
配置

在这里插入图片描述


运行后就不生产图片文件了

在这里插入图片描述


此时bundel中导出的不是图片路径 而是url

在这里插入图片描述


适合小文件不然过大影响速度

在这里插入图片描述


可以通过配置上面的用法

在这里插入图片描述

在这里插入图片描述


注意,file-loader一定要安装,因为超过10kb就会调用file-loader
不然报错

在这里插入图片描述

Webpack 常用加载器分类

原文地址:https://blog.csdn.net/weixin_45345105/article/details/110409018

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


一准备工作umi为react的一个封装比较nice的脚手架。优点当然就是安装方便,开箱即用,集成了诸多好用功能,详见官网。当然缺点就是无法暴露原始的webpack.config.json文件,只能按照官方文档上特定的方法进行修改,而文档却并不完善。项目顺利进行大家笑嘻嘻,一旦遇到偏难怪需求,
webpack在引入两个依赖的包时,可能需要使用shimming,意思是处理代码上的兼容1、在main.js中引入jqueryimport$from'jquery'importappendfrom'./append'//下面的给页面添加元素文件append()2、append.js使用main.js的$向页面中添加元素functionappDomFunc(){
  Happypack (plugin)多线程使用loader编译文件treeshaking删除无用JS代码,依赖ESM规范source-map生产环境一定去掉process.env.XXX配置环境变量,区分各种编译环境splitchunks 代码分离去重DynamicImport动态加载js文件Hot-module-replacement开发环境热更新w
一目录结构├──build//构建相关├──config//配置相关├──src//源代码│├──api//所有请求│├──assets//主题字体等静态资源│
接着第一节的demo现在我们尝试整合一些其他资源,比如图像,看看webpack如何处理。在webpack出现之前,前端开发人员会使用grunt和gulp等工具来处理资源,并将它们从 /src 文件夹移动到 /dist 或 /build 目录中。同样方式也被用于JavaScript模块,但是,像webpack这样的工
webpack的打包原理识别入口文件通过逐层识别模块依赖(Commonjs、amd或者es6的import,webpack都会对其进行分析,来获取代码的依赖)webpack做的就是分析代码,转换代码,编译代码,输出代码最终形成打包后的代码什么是loaderloader是文件加载器,能够加载资源文件,并对这些文件进行
上一篇文章我们在一个demo中见到了webpack的身影,如果从未接触过webpack的同学学完了上一篇文章可能会觉得webpack只是一个“翻译官”,但事实上webpack可不仅仅可以‘翻译’代码,事实上,webpack是一个‘打包’工具,‘打包‘才是webpack的核心任务。打开webpack的官网:webpack中
注:本章将配合Vue详细讲解webpack前提条件1.在开始之前,请确保安装了Node.js和npm的最新版本。使用旧版本,你可能遇到各种问题,因为它们可能缺少webpack功能以及/或者缺少相关package包。在cmd中node-v,npm-v可查看对应的版本和安装情况。2.这里会用到ES6的模块化,如果你
前言、之前我认为对于项目的优化无非是从代码上去优化一些东西,比如循环呀函数式调用呀让你的代码看起来更加的简洁容易懂后来我在面试过程中不断有面试官不断地问了我这些问题所以自己就去研究了一下发现并不是我之前想的那样,一个好的webapck优化的胜过于你在整体代码上
##一、组件component###1.什么是组件?组件(Component)是Vue.js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码组件是自定义元素(对象)###2.定义组件的方式方式1:先创建组件构造器,然后由组件构造器创建组件方式2:直接创建组件###3.组件的分
 #webpack5概述>webpack是一个现代javascript应用程序的**静态模块打包器(modulebundler)**>>vue-cli脚手架环境,集成了webpack,所以才能对各类文件进行打包处理[webpack官网](https://webpack.js.org/) ##webpack能做什么webpack是一个静态模块打包
//这里导入webpack配置,我用对象的形式表示,当然entry属性上定义的文件要有//constconfig=require("./webpack.config");constconfig={entry:'./src/index.js'};const{join,dirname}=require("path");const{readFileSync,writeFileSync}=requi
安装cnpminstallwebpack-bundle-analyzer-D 修改vue.config.jsmodule.exports={chainWebpack:config=>{if(process.env.use_analyzer){//分析config.plugin('webpack-bundle-analyzer')
webpack打包html插件html-webpack-plugin的使用1.创建这样的测试目录结构1)index.html是即将被打包的文件,你可以随便写一些内容2)index.js是打包的入口文件,你可以写或不写内容2.webpack.config.js的代码如下:/***压缩html需要插件:html-webpack=plugin*插件使用方法:
vueinitwebpacktabbar创建vue项目时出现问题vue:无法加载文件C:\Users\dengqian\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。C:\Windows\System32\WindowsPowerShell\v1.0,找到如上路径,以管理员身份运行powershell.exe即可输入set-ExecutionPolicyRemo
在webpack中使用ECharts【官网教程】1、使用如下命令通过npm 安装EChartsnpminstallecharts--save2、全局引用在main.jsimportechartsfrom'echarts'Vue.prototype.$echarts=echarts;3、运用<divstyle="width:60vw;height:280px;"ref="chart"&
如果没有看过我的上一篇文章,请先移步去看一下哈!时隔一年多,之前写的文章感觉大家还挺喜欢的,一直说要更新下一篇。但是一直没有机会,没时间,还有就是,感觉自己的技术,可能不足以支持我继续往下走。但是经过这个一年多的历练,感觉很多东西考虑的会更周全,不负期待!废话说一堆,步入正题
dist文件配置对应的路由名展示这样的效果可以创建一个本地的服务还可以进行代理项目开发是在src里进行代码逻辑编写./表示本地路径/表示绝对路径(nginx需要配置)
 1、用命令创建webpack模板项目vueinitwebpack 项目名,需要选是否的统一选否,所以的依赖手动添加  2、安装依赖vue-router,elementui,sass-loader,node-sass,axios插件安装路由:npminstallvue-router安装elementu
最近想把蘑菇博客部署到k8s上,作为一名java搬砖工,搬砖人不讲码德,biu一下就把后端各模块的dockerfile和chart包copy过来了,很快啊!接下来就可以愉快的使用helm管理蘑菇后端服务部署了。部署完后端服务后,准备制作前端镜像,发现前端打包后,无法动态读取系统环境变量,这很头疼,难不