您现在的位置是:亿华云 > IT科技
Webpack 原理与实践之如何使用 Webpack 实现模块化打包?
亿华云2025-10-09 01:33:18【IT科技】5人已围观
简介本文转载自微信公众号「前端万有引力」,作者一川。转载本文请联系前端万有引力公众号。写在前面我们知道当前生产中主流的模块化打包工具有Webpack、Parcel和Rollup。作为模块化打包工具,它们基
本文转载自微信公众号「前端万有引力」,原用作者一川。理实转载本文请联系前端万有引力公众号。何使化打
写在前面
我们知道当前生产中主流的实现模块化打包工具有Webpack、Parcel和Rollup。模块作为模块化打包工具,原用它们基本的理实特点有:
能够将散落的模块打包在一起 能够编译转换代码中的新特性,使得可以兼容各种生产环境对于主流的何使化打webpack而言,webpack作为一个模块打包工具,实现自身就可以实现模块化代码打包的模块问题,通过webpack可以将零散的原用JS代码打包到一个JS文件中。对于有环境兼容性问题的理实代码,webpack可以在代码打包过程中通过loader机制对其实现编译转换,何使化打然后再进行打包。实现对于不同类型的模块前端模块,webpack支持在js中以模块化的方式载入任意类型的资源文件,例如:可以通过webpack实现在JS中加载CSS文件,被加载的CSS文件会以style标签的方式工具。
webpack还具备代码拆分的能力,能够将应用中所有的亿华云模块按需分块打包,不用担心全部代码打包到一起,产生单个文件过大,导致加载慢的问题。这种模块按需分块打包非常适合大型web项目。
Webpack上路
Webpack作为主流的前端模块打包器,提供了一整套前端项目模块化方案,而不仅仅局限于JS的模块化,可以实现对前端项目开发过程中涉及到的资源进行模块化。
我们知道ES Modules中制定的html中使用script导入js模块,需要设定type="module",用来区分加载的是普通JS脚本还是一个模块。对于支持ES Modules的浏览器可以直接使用,但是对于不支持的浏览器就会报错,因此需要使用webpack模块打包工具避免报错。
<script src="./index.js" type="module"></script> // heading.js export default function(){ const element = document.createElement("div"); element.textContent = "hello yichuan"; element.addEventListener("click",()=>{ console.log("hello onechuan"); return element }) } // index.js import createHeader from "./heading.js"; document.body.append(createHeader())对于,我们需要先安装webpack的核心模块和cli程序,用于在命令行中调用webpack。npx是npm5.2以后新增的一个命令,服务器托管可以更方便地执行远程模块或者项目node_modules中的cli程序。
$ npm init --yes $ npm i webpack webpack-cli -D $ npx webpack --version $ npx webpack通过执行npx webpack实现自动化打包,webpack会默认从src/index.js文件开始打包,打包完毕后会在根目录下生产dist目录,所有打包文件会在dist目录。
|--dist |--main.js (()=>{ "use strict";document.body.append(function(){ const e=document.createElement("div");e.textContent="hello yichuan",e.addEventListener("click",(()=>(console.log("hello onechuan"),e)))}())})();webpack4.0以后的版本支持零配置的方式直接启动打包,整个过程会按照约定将src/index.js文件作为打包入口,最终打包的结果会存放到dis/main.js中。但是,很多时候webpack的默认规则并能满足我们实际需求,对此我们需要对webpack进行自定义配置。
webpack支持在项目中创建webpack.config.js文件进行自定义打包配置,由于webpack是运行在node.js环境,对应应该遵守CommonJS规则进行导入导出。
|--backpack |--src |--heading.js |--main.js |--index.html |--package.json |--webpack.config.js-------webpack配置文件webpack自定义的配置文件:
// webpack.config.js const path = require("path"); module.exports = { entry:"./src/index.js",//打包入口 output:{ //打包出口 filename:"bundle.js",//命名打包后的文件 path:path.join(__dirname,"output") }, // 打包模式 mode:"none" }执行打包命令后会在项目根目录下自动生成打包后的文件目录,我们看到下面是执行打包命令后生成的文件,生成的是一个立即执行函数。
很赞哦!(379)
相关文章
- 当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
- 学C++,80%都是为了搞竞赛、凑一门语言?网友:莫钓鱼
- 用 Puppeteer 实现一个自动化机器人
- Web前端学习容易吗?Web入门难吗?
- .net 适用于从事Internet相关的网络服务的机构或公司
- 从开发一款基于Vue技术栈的全栈热重载生产环境脚手架,我学到了什么?
- Java基础入门之字符串的转换、替换、删除和判断
- 十分钟彻底掌握 CSS Flex 布局
- 尽量不要在域名中出现特殊字符,这样的域名很容易导致访问者输入错误,同时给人留下不专业的印象,降低网站的可信度,并流失大量潜在客户。
- 为什么Java服务器端开发人员不采用Kotlin?
热门文章
站长推荐
其次,一般域名注册有一个获取密码的按钮,域名注册商点击后会向您发送密码。在得到域名注册商发送的密码后,将其传输到域名服务提供商网站,然后输入密码,此时域名呈现申请状态。提交申请后,原注册人通常会向您发送一封电子邮件,询问您是否同意转让。此时,您只需点击同意转移按钮,域名注册商就可以成功转移。
Spring 使用 Mypy 检查 30 万行代码,总结出三大痛点与六个技巧
使用 Elixir 语言编写一个小游戏
锁的四种状态与锁升级过程
当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
用 Python 进行 OCR 图像识别
Vue3.0新特性以及使用经验总结
轻松上手C语言数据类型转换,零基础教程自动和强制类型转换