版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Vue.js3从入门到实战(微课视频版)第9章使用webpack学习目的与要求本章主要讲解webpack的安装与使用,通过本章的学习,掌握webpack的基本配置,了解webpack加载器与插件的配置,掌握使用webpack构建Vue.js应用的具体过程。《Vue.js3从入门到实战》陈恒主编,清华大学出版社目录9.1webpack介绍9.2webpack的安装与使用9.3加载器Loaders与插件Plugins9.4单文件组件与vue-loader《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.1webpack介绍webpack是一个用于JavaScript应用程序的静态模块打包工具。当webpack处理应用程序时,它会在内部从一个或多个入口点(即入口文件)构建一个依赖图(dependencygraph),然后将项目中所需的每一个模块组合成一个或多个bundles,它们均为静态资源,用于展示项目内容。webpack根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.1webpack介绍《Vue.js3从入门到实战》陈恒主编,清华大学出版社来自webpack官方网站(/)的模块化示意图。目录9.1webpack介绍9.2webpack的安装与使用9.3加载器Loaders与插件Plugins9.4单文件组件与vue-loader《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.1安装Node.js和NPM通过访问官网/en/即可下载对应版本的Node.js,本书下载的是“16.15.1LTS”。下载完成后运行安装包node-v16.15.1-x64.msi,一直下一步即可完成安装。然后在命令行窗口中输入命令node-v,检查是否安装成功。《Vue.js3从入门到实战》陈恒主编,清华大学出版社出现了Node.js的版本号,说明Node.js已安装成功。同时,npm包管理器也已经安装成功,可以输入npm-v查看版本号。最后,输入npm-ginstallnpm命令,可将npm更新至最新版本。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.1安装Node.js和NPM9.2.2npm常用命令npm(NodePackageManager),随同Node.js一起安装的包管理工具,方便下载、安装、上传、及管理包,解决了Node代码部署上的很多问题,经常用于以下3种场景。 允许用户从npm服务器下载别人编写的第三方包到本地使用。 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。npm的背后有一个开源的面向文档的数据库管理系统支撑,详细记录了每个包的信息,包括作者、版本、依赖、授权等信息。它的作用是将开发者从繁琐的包管理工作中解放出来,更加专注功能业务的开发。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.2npm常用命令(安装)npm-v#显示版本号说明已经安装相应的版本npminitnpminstall#可简写为npminpmi<ModuleName>npmi<ModuleName>-gnpmi<ModuleName>--savenpmi<ModuleName>--save-devnpmi<ModuleName1><ModuleName2>-save#简写-S,加入到生产依赖中-save-dev#简写-D,加入到开发依赖中-g#全局安装将安装包放在/usr/local下或者Node
的安装目录《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.2npm常用命令(查看)npmls–gnpmlsnpmview<ModuleName>npmview<ModuleName>dependenciesnpmview<ModuleName>repository.urlnpmview<ModuleName>enginesnpmhelp《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.2npm常用命令(更新与卸载)npmupdate<ModuleName>npmupdate-g<ModuleName>#更新全局软件包npmupdate-g#更新所有的全局软件包npmoutdated-g--depth=0#找出需要更新的包npmuninstall<ModuleName>npmuninstall-g<ModuleName>#卸载全局软件包《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.2npm常用命令npmcacheclear–forcenpminstall-gcnpm--registry=npmrebuild<ModuleName>npmoutdatednpmhelpjsonnpmsearch<ModuleName>npmunpublish<package><version>《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.2npm常用命令(使用技巧)多次安装不成功尝试先清除缓存,具体命令如下。npmcacheclean-f查看已安装的依赖包版本号,具体命令如下。npmls<ModuleName>注意:用此方法才能准确的知道项目使用的版本号,查看package.json时,有“^"符号表示大于此版本。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.3安装webpack首先,创建一个目录。然后,使用VSCode打开该目录,并进入Terminal终端。输入命令npminit初始化配置,该命令执行后,将有一系列选项,可以按回车快速确认,结束后将在该目录下生成一个package.json文件。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.3安装webpack接着输入命令npminstallwebpack--save-dev在本地局部(项目中)安装webpack。--save-dev将作为开发依赖来安装webpack。安装成功后,在package.json文件中将多一项配置:"devDependencies":{"webpack":"^5.70.0",}《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.4安装webpack-cliwebpack-cli,即webpack命令行接口,提供了许多命令,使webpack的工作变得更加简单。输入命令npminstallwebpack-cli--save-dev在本地局部安装webpack-cli。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.5安装webpack-dev-serverwebpack-dev-server是一个小型的node.jsExpress服务器,使用webpack-dev-middleware中间件来为通过webpack打包生成的资源文件提供Web服务。安装webpack-dev-server,可以在开发环境中提供很多服务,例如启动一个服务器、热更新、接口代理等。在终端输入命令npminstallwebpack-dev-server--save-dev在本地局部安装webpack-dev-server。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.6webpack的基本配置webpack配置文件是一个名为webpack.config.js的.js文件,架构的好坏都体现在该配置文件中。编写webpack配置文件webpack.config.js配置文件和相关资源文件,执行webpack进行打包,生成如bundle.js的输出文件,并在HTML页面中引用bundle.js文件即可。编写webpack配置文件,需要事先了解webpack配置的框架结构。一般包含模式(mode)、入口(entry)、输出(output)、模块(module)、开发中Server(devServer)和插件(plugins)等几个部分的配置。《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.6webpack的基本配置module.exports={
mode:'',//production|development|none模式
entry:{},//入口文件的配置项
output:{},//出口文件的配置项
module:{},//模块配置项
plugins:[],//插件配置项
devServer:{}//配置webpack开发服务功能}《Vue.js3从入门到实战》陈恒主编,清华大学出版社1.模式(mode)模式mode配置项定义了webpack的执行环境,包括开发环境(development)、生产环境(production)和只打包(none)。使用webpack打包时,务必设置模式配置项。在配置中提供mode选项,示例如下:module.exports={
mode:'production'};除此之外,也可以使用命令行的方式设置模式配置项,示例如下:webpack--mode=production《Vue.js3从入门到实战》陈恒主编,清华大学出版社2.入口(entry)entry配置项表示应用程序的起点或起点入口。从这个起点开始,应用程序启动执行。进入起点入口后,webpack将会找出有哪些模块和库是起点入口所依赖的。根据前端工程的实际需要,可以配置单起点入口和多起点入口。配置规则:每个HTML页面都有一个起点入口;单页应用(SPA),一个起点入口;多页应用(MPA),多个起点入口。《Vue.js3从入门到实战》陈恒主编,清华大学出版社2.入口(entry)(1)单起点入口单起点入口语法:entry:string|[string],示例代码如下:module.exports={
entry:'./src/main.js'//默认值是'./src',值为字符串}如果entry值为数组时,数组的每一个元素一起打包。示例代码如下:module.exports={
entry:['./app/entry1.js','./app/entry2.js']'}《Vue.js3从入门到实战》陈恒主编,清华大学出版社2.入口(entry)(2)多起点入口多起点入口语法:entry:{<key>:string|[string]},entry值为键值对形式的对象,示例代码如下:module.exports={
entry:{page1:'./src/page1/entry1.js',//包名即键名
page2:['./src/page2/entry2.js','./src/page2/entry3.js']}}《Vue.js3从入门到实战》陈恒主编,清华大学出版社3.输出(output)output配置项指明webpack所创建的输出文件(如bundle.js)的位置和命名这些输出文件的规则,默认输出路径为./dist。一般情况下,整个前端工程结构都被编译到所指定的输出路径的文件夹中。可通过output配置项完成path、publicPath和filename等属性的设置。《Vue.js3从入门到实战》陈恒主编,清华大学出版社3.输出(output)(1)pathpath属性表示webpack所有文件的输出路径,必须是绝对路径。(2)publicPathpublicPath属性表示公共路径。该属性为项目中的所有资源指定一个基础路径。基础路径是指前端项目中引用CSS、JavaScript、图像等资源时的一个基础路径,此基础路径需要配合具体资源中指定的路径使用。若publicPath为./dist/,filename:js/[name]-bundle.js,[name]为占位符,与多入口entry值中的属性名称相对应,则引用JavaScript文件路径应为./dist/js/[name]-bundle.js.。《Vue.js3从入门到实战》陈恒主编,清华大学出版社3.输出(output)(3)filenamefilename属性表示输出的JavaScript文件名称。在单起点入口和多起点入口配置情况下,生成的JavaScript文件命名不同。通常,单起点入口生成的文件名为bundle.js;多起点入口生成多个JavaScript文件,文件名命名通常形式为“子目录/[name]-[指定字符].js”,name的值与多起点入口配置中的属性名相同,[指定字符]为可选。《Vue.js3从入门到实战》陈恒主编,清华大学出版社单起点入口constpath=require('path');module.exports={output:{path:path.resolve(_dirname,'dist'),//输出的文件路径,默认为./distfilename:'bundle.js',//默认单起点入口输出为bundle.jspublicPath:'./dist/'//指定资源文件引用的目录}}引用JavaScript文件路径应为./dist/bundle.js.《Vue.js3从入门到实战》陈恒主编,清华大学出版社多起点入口constpath=require('path');module.exports={output:{path:path.resolve(_dirname,'dist'),//输出的文件路径,默认为./distfilename:'js/[name]-bundle.js',//针对多起点入口,在js子目录输出不同的JavaScript文件publicPath:'./dist/'//指定资源文件引用的目录}}引用JavaScript文件路径应为./dist/js/[name]-bundle.js.《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.2.7webpack打包实例1.单起点入口项目的打包【例9-1】webpack打包示例——单起点入口项目打包。该实例需使用VSCode打开webpack-firstdemo目录,并在完成9.2.3节至9.2.5节的基础上进行。2.多起点入口项目的打包【例9-2】webpack打包示例——多起点入口项目打包。该实例需使用VSCode打开ch9_2目录,并在完成9.2.3节至9.2.5节的基础上进行。《Vue.js3从入门到实战》陈恒主编,清华大学出版社目录9.1webpack介绍9.2webpack的安装与使用9.3加载器Loaders与插件Plugins9.4单文件组件与vue-loader《Vue.js3从入门到实战》陈恒主编,清华大学出版社9.3.1加载器Loaders默认情况下,webpack只识别JavaScript模块,不能识别CSS文件、less文件、Vue文件、图片、视频等其他模块。webpack使用加载器的目的,就是识别和解析除JavaScript模块以外的其他模块。对于不同的模块,需要使用不同的加载器来处理。当需要使用webpack对非JavaScript模块进行打包时,就需要为其配置对应的加载器。主要通过module配置项中的rules属性,进行读取和解析加载器的配置,rules的类型是一个数组,数组中每项都描述了如何去预处理资源文件。《Vue.js3从入门到实战》陈恒主编,清华大学出版社1.加载器的命名方法通常情况下,加载器的命名格式是xxx-loader,其中xxx是上下文名称,如css、vue等。加载器的名称如css-loader、vue-loader等。《Vue.js3从入门到实战》陈恒主编,清华大学出版社2.加载器的安装方法可通过NPM安装加载器,示例如下:npminstallcss-loader--save-devnpminstallstyle-loader--save-dev《Vue.js3从入门到实战》陈恒主编,清华大学出版社3.加载器的使用方法(1)在webpack.config.js配置文件中指定loader(推荐)module:{rules:[{test:/\.css$/,use:[{loader:'style-loader'},{loader:'css-loader',options:{modules:true}}]}]}《Vue.js3从入门到实战》陈恒主编,清华大学出版社3.加载器的使用方法(2)在每个import语句中显式指定loader可以在import语句或任何等效于import语句的方式中指定loader。使用“!”将资源中的loader分开,具体示例如下。importstylefrom'style-loader!css-loader?modules!./styles.css';上述示例,将styles.css文件内容先经过css-loader处理,然后经过style-loader处理,以<style>标记的形式注入页面的head中,其中“!”表示串联使用加载器。《Vue.js3从入门到实战》陈恒主编,清华大学出版社3.加载器的使用方法(3)在命令行中指定loader也可以使用命令行指定loader,具体示例如下。webpack--module-bindjade-loader--module-bind'css=style-loader!css-loader'上述示例,对.jade文件使用jade-loader,对.css文件使用style-loader和css-loader。《Vue.js3从入门到实战》陈恒主编,清华大学出版社4.常见的加载器类型(1)文件raw-loader:加载文件原始内容(utf-8)。val-loader:将代码作为模块执行,并将exports转为JS代码。url-loader:像fileloader一样工作,但如果文件小于限制,可以返回dataURL。file-loader:将文件发送到输出文件夹,并返回(相对)URL。(2)JSONjson-loader:加载JSON文件(默认包含)。json5-loader:加载和转译JSON5文件。cson-loader:加载和转译CSON文件。《Vue.js3从入门到实战》陈恒主编,清华大学出版社4.常见的加载器类型(3)脚本转换编译script-loader:在全局上下文中执行一次JavaScript文件(如在<script>标记中),不需要解析。babel-loader:加载ES2015+代码,然后使用Babel转译为ES5。buble-loader:使用Bublé加载ES2015+代码,并且将代码转译为ES5。traceur-loader:加载ES2015+代码,然后使用Traceur转译为ES5。ts-loader或awesome-typescript-loader:像JavaScript一样加载TypeScript2.0+。coffee-loader:像JavaScript一样加载CoffeeScript。《Vue.js3从入门到实战》陈恒主编,清华大学出版社4.常见的加载器类型(4)模板html-loader:导出HTML为字符串,需要引用静态资源。pug-loader:加载Pug模板并返回一个函数。jade-loader:加载Jade模板并返回一个函数。markdown-loader:将Markdown转译为HTML。react-markdown-loader:使用markdown-parseparser(解析器)将Markdown编译为React组件。posthtml-loader:使用PostHTML加载并转换HTML文件。handlebars-loader:将Handlebars转移为HTML。markup-inline-loader:将内联的SVG/MathML文件转换为HTML。在应用于图标字体,或将CSS动画应用于SVG时非常有用。《Vue.js3从入门到实战》陈恒主编,清华大学出版社4.常见的加载器类型(5)样式style-loader:将模块的导出作为样式添加到DOM中。css-loader:解析CSS文件后,使用import加载,并且返回CSS代码。less-loader:加载和转译LESS文件。sass-loader:加载和转译SASS/SCSS文件。postcss-loader:使用PostCSS加载和转译CSS/SSS文件。stylus-loader:加载和转译Stylus文件。《Vue.js3从入门到实战》陈恒主编,清华大学出版社4.常见的加载器类型(6)框架vue-loader:加载和转译Vue组件。polymer-loader:使用选择预处理器(preprocessor)处理,并且require()类似一等模块(first-class)的Web组件。angular2-template-loader:加载和转译Angular组件。《Vue.js3从入门到实战》陈恒主编,清华大学出版社4.常见的加载器类型(7)清理和测试mocha-loader:使用mocha测试(浏览器/NodeJS)。eslint-loaderPreLoader:使用ESLint清理代码。jshint-loaderPreLoader:使用JSHint清理代码。jscs-loaderPreLoader:使用JSCS检查代码样式。coverjs-loaderPreLoader:使用CoverJS确定测试覆盖率。《Vue.js3从入门到实战》陈恒主编,清华大学出版社5.加载器的配置通过webpack.config.js配置文件中的module配置项的rules属性,进行读取和解析加载器的配置,rules属性值是一个对象数组。配置时需要注意一下几点。(1)条件匹配通过test、include(包括)、exclude(排除)3个配置项匹配加载器需要应用的文件,如test:Λ.css$/,匹配所有CSS
文件。(2)应用规则对选中后的文件,通过use配置项应用加载器,可以应用一个加载器或按照从后往前的顺序应用一组加载器,同时还可以分别给加载器传入参数。(3)重置顺序在use:['loader3','loader2','loader1']配置项中,一组加载器的执行顺序默认是从右到左执行,但通过enforce
选项可以让某个加载器的执行顺序排在最前(pre)或最后(post)。例如,在某条规则中的use配置项后面添加“,enforce:'pre'”(逗号分隔),则该条规则执行权限前置。《Vue.js3从入门到实战》陈恒主编,清华大学出版社【例9-3】加载器的使用与配置(有.js文件、.css文件和图像文件)。该实例需使用VSCode打开ch9_3目录,并在完成9.2.3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防爆配电箱租赁协议书
- 锅炉安装工程内部承包合同
- 工作室合租合同书
- 常用药店股份合作协议书
- 电话通信服务话费托收协议书
- 贵州省六盘水市2024年七年级上学期期中数学试题【附答案】
- 4.1常见地貌类型+风沙地貌-高一地理人教版(2019)必修一
- 工程项目成本风险分析及管理
- 河北省唐山一中高三下学期强化提升考试(六)英语试题
- 07陌生物质性质与制备探究(原卷版)
- 高中英语外刊-小猫钓鱼50篇
- 监理大纲工程监理方案技术标投标方案
- 《3.2认识居民身份证》道法课件
- 《园林制图》课件-曲线与曲面
- 中国移动:5G-A无源物联网典型场景技术解决方案白皮书2024
- PowerPoint培训教程课件
- 医疗绿色通道医联体协议书
- 2023-2024学年北京市八中九年级上学期期中考试物理试卷含详解
- 2024事业单位招聘考试时事政治考试题库学生专用
- 兽医病理学智慧树知到期末考试答案章节答案2024年浙江农林大学
- 《心系国防 有你有我》国防教育主题班会课件
评论
0/150
提交评论