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

如何使用webpack打包文件.

发布网友 发布时间:2024-09-26 16:39

我来回答

1个回答

热心网友 时间:2024-11-16 01:04

highlight:a11y-darkwebpack1.什么是webpack有什么用.webpack是一个现代Javascript应用程序的静态模块打包器.????静态:文件资源????模块:node环境,引入文件,遵守模块化语法.还可以翻译和压缩代码.减小代码包体积,让浏览器更快速的打开网页2.学习webpack的准备工作2.1准备.???环境准备:它是基于nodejs,所以本机一定要先安装了node。???项目准备:webpack是用来对已有项目进行**打包**,所以一定是在某个项目下进行应用打包。???知识准备:模块化(es6,?commonjs模块化均可)2.2操作顺序.????1.??安装node????2.??用npm?init?初始化项目(如果已经有package.json,则跳过这一步)????3.??在当前项目中安装并使用webpack3.项目初始化

任意创建一个空文件夹,在这里我们取名字为,demo,进入到文件夹内部,打开cmd.用npminit-y命令来生成一个package.json

4.准备初始代码.

创建三个文件,index.html.index.js,tool.js然后搭建项目结构.

项目名├──?index.html├──?index.js├──?tool.js└──?package.json

在index.html中写下如下代码.

<!DOCTYPE?html><html?lang="zh"><head>????<meta?charset="UTF-8">????<title>index</title>??</head>??<body>????<div?id="app">????</div>????<!--?引入两个js文件?-->????<script?src="./tool.js"></script>????<script?src="./index.js"></script></body></html>

tool.js代码

const?updateDom?=?(id,?content)?=>{????window.document.getElementById(id).innerHTML?=??content}

index.js

updateDom?('app','index.html')

说明:

在一个html中引入多个js文件,并且要注意它们的顺序关系。

script代码在body的底部,这样可以确保是dom节点渲染在js代码执行之前。上面的代码中有如下问题:

js文件之间有先后的引用的关系:由于index.js中引用了tool.js的,所以必须要把tool.js放在index.js的前面。

存在变量污染的情况:一个文件中定义的变量,在另一个文件中可能会被修改,覆盖。

随着.js文件个数增加,则项目会越来越不好管理解决思路:模块化+webpack打包.

接下来到我们的重头戏.安装并使用webpack.

安装webpack

webpack是一个工具,对于所有的项目都可以来使用,从这个意义上来讲,它是可以去全局安装的,但是,考虑到不同的项目中可能使用了不同的webpack版本,所以不推荐大家去全局安装。特别是打开一个老项目时,一定要注意一下它的webpack的版本号。

打开cmd窗口安装,输入下面这串命令:npmiwebpackwebpack-cli-D

下面通过命令行工具来检测是否安装成功.

#?方式一:node_moles\.bin\webpack?-v#?方式二:npx?webpack?-v

注意:

由于webpack并不是全局安装的,所以并不能直接使用webpack-v来做检验。

npx是npm5.2之后提供的新功能。可以通过npx-v来检测它的版本。在这里,我们通过它来调用项目安装的模块,它在运行时会在node_moles/.bin中去检查命令是否存在。

在tool.js导出模块.

更改之后的代码.export?const?updateDom?=?(id,?content)?=>?{??window.document.getElementById(id).innerHTML?=?content}

在index.js导入模块.

更改之后的代码import?{?updateDom?}?from?"./tool.js"updateDom('app',?'index.html')

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

我们接下来就需要使用webpack命令来对index.js进行处理了.

使用webpack来做打包.

命令是:npxwebpack?文件名

我们只需要在小黑窗输入,npxwebpack./index.js?因为我们的文件名字叫index.js你也可以根据你的文件名来输入这行命令.

这时会自动生成一个dist文件夹,合并的代码打印在文件夹里面的main.js里面

在HTML里面引入main.js

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
中国银行自助存款怎么存呀? 中国银行存款怎么存? 有没有简单易学而又美味的甜食呢? 转账云证书pin码是什么 孩子不想跟父母过了怎么办 驾驶证丢失后补办需等待多长时间 上海304不锈钢板材 国标 如何在ps中模仿日系风格,制作出温暖午后的小清新杂志封面? PS和InDesign设计时尚杂志封面 晚上睡觉觉得腿难受是怎么回事 布依族五色花米饭的味道如何? 馁腹的词语馁腹的词语是什么 云米洗衣机门打不开怎么办 云米洗衣机不脱水是什么原因 怎么知道安卓手机的WiFi密码? 京东可以货到分期付款吗 广东培训信息网平台介绍 大培训网网站简介 怎么把手机上不想接到的号码拉黑名单里呢? 从“一朵落花”“一片落叶”“一块石头”中引发的( )和( )。 贷款不能用于什么用途 oppo手机怎么记录步数 违规使用贷款是什么意思 消费贷用途违规后果 怎么在手机桌面显示步数 ...日上午11点整。取2字名,父母同姓詹。(五行,解释)谢谢。 中国医药城普济医院(江苏泰州普济医院)去那当护士好不好 江苏泰州市普济医院(也叫中国医药城医院),我想去那儿做会计(不是坐外面... 在泰州医药城找工作要学什么专业? 非会员怎么看免费视频? 佳能iR2318L出现E000001-0001怎么清除 Webpack原理解析? 逆向webpack打包后的js(webpack打包umd) 空调室内外机高度差距多少最佳 空调内机高于外机这样装是对的吗有没有什么明确规定 空调内机外机高度是多少合理? 黑龙江江省五七工丧葬费是多少有补偿 柴油车没劲发闷提速慢 柴油车发闷提速无力爬坡无力 河北省邯郸 一年有几个季度分别是哪几个季度 一年有44个季度,1月、2月、3月1月、2月、3月是第一季度,4月、5月... 500字 《草船借剑》缩写 ...ifix自带的vba编程实现与com的直接通信,通信协议自定义,如何... 单片机 和电脑通信 (RS232) 需要特地的去编写驱动吗? 我使用VB_百度知 ... 科普:为什么冬天皮肤更差了? 冬天经常吹空调对身体有害处吗?有的话怎麽做才好呢? 用U深度进pe C盘读不出来 格式化显示无法完成 D盘也是一样 装机未响... 电脑重置失败 然后无法从硬盘启动 u盘也不行 u盘装系统新旧版电脑都进不去怎么回事 u深度PE装系统为什么老是失败?