Vue系列教程(16)- 模块打包器(webpack)

简介: Vue系列教程(16)- 模块打包器(webpack)

1. 引言

通过前面的章节,我们已经学会了Vue的事件内容分发,有兴趣的同学可以参阅下:

Vue的基础知识至此基本已经学完了,接下来主要学习Vue项目的打包方式,即本文讲的webpack

2. 什么是webpack

Webpack是当下最热门的前端资源模块化管理和打包工具, 它可以:

  • 将许多松散耦合的模块按照依赖和规则打包成符合生产环境部署的前端资源。
  • 还可以将按需加载的模块进行代码分离,等到实际需要时再异步加载。
  • 通过loader转换, 任何形式的资源都可以当做模块, 比如Commons JS、AMD、ES 6、CSS、JSON、Coffee Script、LESS等;

Webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler) 。当Webpack处理应用程序时, 它会递归地构建一个依赖关系图(dependency graph) , 其中包含应用程序需要的每个模块, 然后将所有这些模块打包成一个或多个bundle。(类似于Maven

伴随着移动互联网的大潮, 当今越来越多的网站已经从网页模式进化到了WebApp模式。它们运行在现代浏览器里, 使用HTML 5、CSS 3、ES 6等新的技术来开发丰富的功能, 网页已经不仅仅是完成浏览器的基本需求;WebApp通常是一个SPA(单页面应用) , 每一个视图通过异步的方式加载,这导致页面初始化和使用过程中会加载越来越多的JS代码,这给前端的开发流程和资源组织带来了巨大挑战。

前端开发和其它开发工作的主要区别:

  • 首先是前端基于多语言、多层次的编码和组织工作
  • 其次前端产品的交付是基于浏览器的,这些资源是通过增量加载的方式运行到浏览器端

如何在开发环境组织好这些碎片化的代码和资源,并且保证他们在浏览器端快速、优雅的加载和更新,就需要一个模块化系统,这个理想中的模块化系统是前端工程师多年来一直探索的难题。

3. webpack安装

1.安装打包工具

sudo npm install webpack -g

2.安装客户端

sudo npm install webpack-cli -g

验证是否成功(如果有如下提示,安装成功):

4. webpack项目案例

4.1 创建webpack项目

①创建webpack项目,即文件夹(webpack-demo

vscode导入项目:

③创建一个名为modules的目录(用来放置JS模块等资源文件):

④ 在modules下创建模块文件Hello.js,并写入内容:

//暴露一个方法:sayHi
exports.sayHi = function () {
    document.write("<div>Hello Webpack</div>");
}

⑤ 在modules下创建一个名为main.js的入口文件:

//require 导入一个模块,就可以调用这个模块中的方法了
var hello = require("./hello");
hello.sayHi();

⑥在项目根目录下创建webpack.config.js配置文件:

代码如下:

module.exports = {
    entry: "./modules/main.js",
    output: {
        filename: "./js/bundle.js"
    }
}

4.2 打包

打开控制台 Terminal-> new Terminal,并输入命令webpack:

打包成功,并在项目目录可以看到生成以下目录及文件(bundle.js就是打包后好的js文件):

其它:命令行输入webpack --watch 代码发生变动,会自动重新打包

4.3 使用打包后的js文件

①在项目根目录下创建HTML页面:

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<script type="text/javascript" src="./dist/js/bundle.js"></script>
<body>
</body>
</html>

②运行页面,效果如下:

4.4 小结

webpack相当于就是多个模块化的文件合并为一个js文件(这些打包后的文件经过处理,便可以向下兼容如ES5),最后我们可以把生成的js文件在html里直接引入。本文完!

目录
相关文章
|
1月前
|
JavaScript
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
这篇文章是关于如何在webpack环境中配置Vue.js,包括安装Vue.js、解决报错、理解el与template的区别、使用SPA模式、抽离模板为对象、封装为单独的js文件、安装vue-loader时遇到的问题及解决方案,以及整个过程的总结。
72 2
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
|
29天前
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
21 7
|
24天前
|
前端开发 JavaScript 容器
在 vite+vue 中使用@originjs/vite-plugin-federation 模块联邦
【10月更文挑战第25天】模块联邦是一种强大的技术,它允许将不同的微前端模块组合在一起,形成一个统一的应用。在 vite+vue 项目中,使用@originjs/vite-plugin-federation 模块联邦可以实现高效的模块共享和组合。通过本文的介绍,相信你已经了解了如何在 vite+vue 项目中使用@originjs/vite-plugin-federation 模块联邦,包括安装、配置和使用等方面。在实际开发中,你可以根据自己的需求和项目的特点,灵活地使用模块联邦,提高项目的可维护性和扩展性。
|
29天前
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
33 6
|
25天前
|
缓存 JavaScript UED
Vue 中异步加载模块的方式
【10月更文挑战第23天】这些异步加载模块的方式各有特点和适用场景,可以根据项目的需求和架构选择合适的方法来实现模块的异步加载,以提高应用的性能和用户体验
|
25天前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
1月前
|
缓存 前端开发 JavaScript
深入了解Webpack:模块打包的革命
【10月更文挑战第11天】深入了解Webpack:模块打包的革命
|
1月前
|
缓存 前端开发 JavaScript
Webpack技术深度解析:模块打包与性能优化
【10月更文挑战第13天】Webpack技术深度解析:模块打包与性能优化
|
1月前
|
前端开发 JavaScript 开发者
深入了解Webpack:现代JavaScript应用的打包利器
【10月更文挑战第11天】 深入了解Webpack:现代JavaScript应用的打包利器
|
4月前
|
缓存 JSON 前端开发
Webpack打包优化实践
【7月更文挑战第17天】Webpack的打包优化是一个持续的过程,需要开发者根据项目的实际情况选择合适的优化策略。通过拆分代码、压缩代码、使用Tree Shaking、优化加载器配置、利用缓存以及进行性能分析,我们可以有效提升Webpack的打包效率和应用的加载
下一篇
无影云桌面