问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

webpack的基本使用

发布网友 发布时间:2024-09-26 00:29

我来回答

1个回答

热心网友 时间:2024-11-17 00:04

theme:condensed-night-purplewebpack的基本介绍

官方概念:是一个现代JavaScript应用程序的静态模块打包器静态:文件资源模块:node环境,引入文件,遵循模块化语法除了合并代码,还能翻译和压缩代码作用:

静态模块打包器

翻译和压缩代码

减小代码包体积,让浏览器更快速的打开网页

学习webpack的准备工作

安装一个node

npminit初始化这个项目,生成package.json文件

安装并使用webpack

安装并使用webpack

注意:

webpack是一个工具,对于所有的项目都可以来使用

不同的项目使用了不同的webpack版本,所以不推荐全局安装,打开老项目的时候,一定要注意版本号

采用局部安装,只是开发依赖,并不是生产依赖,在命令行加上-D

命令如下npmiwebpackwebpack-cli-D

检测是否安装成功npxwebpack-v

修改用模块化的方式来改写代码在tool.js导出模块const?updateDom?=?(id,?content)?=>?{????window.document.getElementById(id).innerHTML?=?content}//导出mole.exports?=?{????updateDom}在index.js中导入模块//导入??const?{?updateDom?}?=?require('./tool.js')updateDom('app',?'index.html')

由于现在在index.js使用了require这种模块化的处理方式,所以它无法直接在浏览器中使用,如果直接在index.html中引用,浏览器会报错

使用webpack来做打包

命令如下npxwebpack文件名如果没有错误,会生成一个dist的文件夹,里面有一个main.js的文件,说明打包已经操作成功

?

引入打包后的js<!DOCTYPE?html><html?lang="zh"><head>????<meta?charset="UTF-8">????<title>index</title></head><body>????<div?id="app">????</div>????<!--?引入打包后的js文件?-->????<script?src="./dist/main.js"></script></body></html>

?

为什么要用webpack

有效的处理模块化

把多个相互引用的.js文件打包成一个文件,能够压缩和加密文件,使文件上线更安全

在这个过程中nodejs的作用,它是webpack运行的基础,最终生成的main.js文件还是在浏览器中运行的

webpack的配置文件创建并使用默认配置文件

在项目的根目录下,创建一个webpack.config.js的文件内容如下:

mole.exports?=?{mode:?'development',?//?打包方式}

作用:导出一个配置项,用来对webpack的打包行为做设置

了解入口和出口

入口文件:指定了webpack从哪个文件开始工作,在它的内部会引入其他的模块出口文件:指定了最后打包之后的文件在webpack中的默认出口和入口是:

默认入口:./src/index.js

默认出口:./dist/main.js如果直接在根目录下运行webpack,它会直接去找.src下的index.js,并把打包之后的代码放在dist/main.js下直接省略入口文件,直接打包npxwebpack

设置入口文件

在src目录下,新建一个js文件夹,把index.js改成main.js,并把tool.js放在里面

修改配置项,添加entry项entry:'./src/js/main.js'

设置出口文件

修改配置项,添加output项

把出口文件设置为在build目录下的bundle.js1、引入nodejs中的path模块2、在output项中,设置出口文件的绝对路径和文件名称

??output:?{??????//设置路径??????path:?path.join(__dirname,?'/build'),??????//?设置名称(默认情况下叫main.js)??????filename:?'bundle.js'??}修改打包的模式

mode项用来设置打包的方式,如果不设置默认为proctiondevelopment:开发模式(代码不会混淆,压缩)proction:生产模式(压缩、混淆、加密?不可读)

在打包的时候指定配置文件

自己创建一个webpack.dev.js的文件,用来做配置文件内容如下:

mole.exports?=?{??output:{????filename:'boundle.js'??}}

我们希望使用我们配置的文件来设置打包格式如下:npxwebpack--configwebpack的配置文件?

简化打包命令

定制script在package.json中添加script命令来快速启动webpack

在script中不需要再添加npx,它会自动在node_moles/.bin中去找命令这样我们就得到了两个命令,dev和build可以在小黑窗中运行:npm?run?build,npm?run?dev来运行

小结

webpack的配置文件默认名是webpack.config.js,也可以单独指定

学习webpack就学习webpack.config.js的使用。

把webpack的命令集成到script中可以简化打包命令。

可以自行定义入口和出口文件

loader

在webpack看来,一切皆模块

loader处理css文件

在js中导入css文件

安装一个css-loader包,在配置文件中配置mole

安装style-loader包,再进行配置,style写在css的前面

在html文件中引入生成的打包好的js文件

loadedr处理less文件

在js文件中导入less文件

安装一个less-loader包,在配置文件中加一个配置less文件的对象

less-loader写在css-loader的后面

在html文件中引入生成的打包好的js文件

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 pycharm如何运行django(pycharm如何运行js文件) ...的总热量分配早中晚三餐的合理比比例约为多少a0.4 添加微信好友请求能撤回吗? 已添加微信号对方未验证接受的情况下如何删除对方 成都到鞍山为什么比成都到沈阳贵 从四川成都到辽宁鞍山的平邮要多少天到? ...至今为止到的片头曲,片尾曲,剧场版主题曲和剧场版tv版的插曲!_百度... 钻石风扇是哪个厂家生产的? 钻石牌电风扇是什么厂家生产的? 钻石牌风扇是哪个厂家生产的? 钻石牌风扇是哪家公司生产的? 清明节一定是4月5号吗 每年的清明节是不是都是4月5日?了解一下清明节具体是哪一天 清明节每年都是4月5号吗 这个说法是真的吗 清明节是固定的日期吗,清明节日期为何不固定在4月5日 2024年清明节为什么是4月4日-2024年清明节怎么不是4月5日 three洗面奶怎么样 three洗面奶多少钱 乱口是什么意思? 请问一下胃里感觉老是凉凉的吃点什么药 感觉胃里凉凉的有寒气吃什么药 ...文件访问同一个JS文件,引用路径为什么都是一样的? 外贸业务装柜前要做的工作 我的路由器是54M,宽带是100M,路由器输出多大M? 我的微信号已经卖出,还可以登录游戏吗? 为什么我的微信号别人登录不上?我上次在交易猫卖游戏号,后面别人怎么样... 我微信被交易猫客服骗了600,可以立案报警吗 交易猫卖微信账号,但是我告诉对方密码并且绑定对方手机号,对方还是无 ... 石榴酒有哪些储存窍门? 九年义务教育是几岁开始的? 九年义务教育是从几岁开始到几岁结束? 支付宝联系人这个怎么删除? 我用电脑登陆查支付宝通讯录并没存有联 ... shadowsocks在mac上设置好了为何还是连不上网? shadow rocket为什么不能用了呢? SSR出现1080端口被占用解决 shadowsocks能在手机上使用吗? 《苍兰诀》各个人物关系是怎样的? 女式皮鞋品牌哪个好 女士皮鞋品牌排行前十名(Maigoo) 世界女士皮鞋品牌排行全球女士皮鞋十大排名 清明菜泡水喝的功效?清明菜除了做青团外,泡水喝同样功效多多! 清明菜吃了有什么好处