webpack4【guides说明1】

以下内容基本上来自于webpack官网,自己这里只做了下手打,稍微加上自己的理解

附上链接 https://webpack.js.org/guides/

可以看到guide部分有这么多小节:

【1】.getting started

1.创建测试用的目录guides,进入guides目录,npm init, npm install  --save-dev webpack webpack-cli

项目中已安装好webpack了,接下来项目创建一个测试用的js文件 src/index.js,以及index.html文件,项目目录结构至此如下

上述文件只是用来做对比用的,也是我们在没有使用webpack打包项目时的通常做法,使用lodash前,先引入lodash脚本,关注点放在“使用前先引入”上,问题来了,

1.如果项目使用多个 第三方模块,就得前置很多script来引入脚本,

2.如果多个第三方模块之前还存在着依赖,这又得开发人员自己手动去排布scirpt引入顺序

3.多个模块之前如果存在重合的代码部分,这增加了页面初始时的数据传输量,而这通常意味着更多的运营成本,页面响应时间,等等问题

类似webpack这样的工具,就是用来处理这部分问题的。

 

让我们来看看原文是怎么说明上述目录文件的潜在问题的

“在这个例子中,scripts标签间有一个不直接的依赖关系,就是index.js文件依赖于lodash,lodash得先于自己(index.js文件)被加载进来。index.js文件没有显示地申明自己依赖于lodash,它仅仅是假设全局标量_存在。”

“这样带来的管理js项目的问题:

1.没有明显的方式表示,脚本依赖于外部

2.如果一个依赖不可访问了,或者丢失了,又或者引入顺序错误,项目就不能正常工作了

3.如果一个依赖被引入了,但是项目中却没有使用,浏览器还是会下载这些无用的脚本

 

这时我们引入webpack来解决上述问题,以及其他问题 

在这之前先稍微改变一下目录结构,该表后的目录如下(改动:创建一个dist目录,并在dist目录下放置前文创建的index.html文件)

注意到+号开头的是 与前文相比增加的行,-号代表与前文对比删掉的行

先不论dist目录干什么用的,main.js哪里来的,单从现在书写的角度看待,index.js文件,我们清楚明了的说明了自己的依赖

lodash(import .....),index.html文件也只是仅仅引入一个脚本文件(也不一定webpack打包后只会产生一个文件,//todo)

 

在本样例设定中,index.js文件清晰的声明了自己需要lodash,并且将其绑定到_,而且这种绑定不会带带来全局命名污染的问题。通过这样的一种 “模块声明自己需要什么依赖”的方式,webpack用这些信息,综合起来创建一个内部用的 “依赖图”,接着用这个图去生成一个优化后的“包”(文件)

 

接着上面的文件设置,就是所谓的打包操作了,运行npx webpack命令(这需要你的Node版本在8.2,npm5.2及其以上版本),不然你就得老老实实的运行 冗余的 “./node_modules/.bin/webpack” 命令,可以看见npx的命令其实就是 简化运行项目本地命令的一种快捷方式。

那么这样打包后,会自动在dist/目录下生成一个main.js文件了,这也就是前面看见index.html中为什么会莫名其妙的直接引入一个main.js文件的原因:webpack再没有使用配置文件的情况下,自动在项目中生成一个dist目录,并在其下生成打包文件main.js。

 

来看看我这边发生了什么 运行npx webpack后,提示了一个错误:Module not found: Error: Can't resolve 'lodash' in 'C:\Users\89434\Desktop\guides\src',模块lodash没发现

接下来去安装lodash就好了

打包成功,黄色的那段提示暂时不用管它。让我们看看所谓产生的打包文件到底什么样:

可以看见打包后的文件,在使用npx webpack的情况下,内容是被丑化出处理了的

 

点击index.html,正常显示出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值